Loading fs/bcachefs/journal_io.c +1 −1 Original line number Diff line number Diff line Loading @@ -605,7 +605,7 @@ static int journal_entry_data_usage_validate(struct bch_fs *c, goto out; } if (journal_entry_err_on(bch2_replicas_entry_validate(&u->r, c->disk_sb.sb, &err), if (journal_entry_err_on(bch2_replicas_entry_validate(&u->r, c, &err), c, version, jset, entry, journal_entry_data_usage_bad_size, "invalid journal entry usage: %s", err.buf)) { Loading fs/bcachefs/replicas.c +14 −4 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ void bch2_replicas_entry_to_text(struct printbuf *out, prt_printf(out, "]"); } int bch2_replicas_entry_validate(struct bch_replicas_entry_v1 *r, static int bch2_replicas_entry_validate_locked(struct bch_replicas_entry_v1 *r, struct bch_sb *sb, struct printbuf *err) { Loading Loading @@ -94,6 +94,16 @@ int bch2_replicas_entry_validate(struct bch_replicas_entry_v1 *r, return -BCH_ERR_invalid_replicas_entry; } int bch2_replicas_entry_validate(struct bch_replicas_entry_v1 *r, struct bch_fs *c, struct printbuf *err) { mutex_lock(&c->sb_lock); int ret = bch2_replicas_entry_validate_locked(r, c->disk_sb.sb, err); mutex_unlock(&c->sb_lock); return ret; } void bch2_cpu_replicas_to_text(struct printbuf *out, struct bch_replicas_cpu *r) { Loading Loading @@ -676,7 +686,7 @@ static int bch2_cpu_replicas_validate(struct bch_replicas_cpu *cpu_r, struct bch_replicas_entry_v1 *e = cpu_replicas_entry(cpu_r, i); int ret = bch2_replicas_entry_validate(e, sb, err); int ret = bch2_replicas_entry_validate_locked(e, sb, err); if (ret) return ret; Loading fs/bcachefs/replicas.h +1 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ void bch2_replicas_entry_sort(struct bch_replicas_entry_v1 *); void bch2_replicas_entry_to_text(struct printbuf *, struct bch_replicas_entry_v1 *); int bch2_replicas_entry_validate(struct bch_replicas_entry_v1 *, struct bch_sb *, struct printbuf *); struct bch_fs *, struct printbuf *); void bch2_cpu_replicas_to_text(struct printbuf *, struct bch_replicas_cpu *); static inline struct bch_replicas_entry_v1 * Loading Loading
fs/bcachefs/journal_io.c +1 −1 Original line number Diff line number Diff line Loading @@ -605,7 +605,7 @@ static int journal_entry_data_usage_validate(struct bch_fs *c, goto out; } if (journal_entry_err_on(bch2_replicas_entry_validate(&u->r, c->disk_sb.sb, &err), if (journal_entry_err_on(bch2_replicas_entry_validate(&u->r, c, &err), c, version, jset, entry, journal_entry_data_usage_bad_size, "invalid journal entry usage: %s", err.buf)) { Loading
fs/bcachefs/replicas.c +14 −4 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ void bch2_replicas_entry_to_text(struct printbuf *out, prt_printf(out, "]"); } int bch2_replicas_entry_validate(struct bch_replicas_entry_v1 *r, static int bch2_replicas_entry_validate_locked(struct bch_replicas_entry_v1 *r, struct bch_sb *sb, struct printbuf *err) { Loading Loading @@ -94,6 +94,16 @@ int bch2_replicas_entry_validate(struct bch_replicas_entry_v1 *r, return -BCH_ERR_invalid_replicas_entry; } int bch2_replicas_entry_validate(struct bch_replicas_entry_v1 *r, struct bch_fs *c, struct printbuf *err) { mutex_lock(&c->sb_lock); int ret = bch2_replicas_entry_validate_locked(r, c->disk_sb.sb, err); mutex_unlock(&c->sb_lock); return ret; } void bch2_cpu_replicas_to_text(struct printbuf *out, struct bch_replicas_cpu *r) { Loading Loading @@ -676,7 +686,7 @@ static int bch2_cpu_replicas_validate(struct bch_replicas_cpu *cpu_r, struct bch_replicas_entry_v1 *e = cpu_replicas_entry(cpu_r, i); int ret = bch2_replicas_entry_validate(e, sb, err); int ret = bch2_replicas_entry_validate_locked(e, sb, err); if (ret) return ret; Loading
fs/bcachefs/replicas.h +1 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ void bch2_replicas_entry_sort(struct bch_replicas_entry_v1 *); void bch2_replicas_entry_to_text(struct printbuf *, struct bch_replicas_entry_v1 *); int bch2_replicas_entry_validate(struct bch_replicas_entry_v1 *, struct bch_sb *, struct printbuf *); struct bch_fs *, struct printbuf *); void bch2_cpu_replicas_to_text(struct printbuf *, struct bch_replicas_cpu *); static inline struct bch_replicas_entry_v1 * Loading