diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-05-06 04:56:54 +0200 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-05-06 16:58:17 +0200 |
commit | 8060bf1d83f7d404bacb0e5a38f2d4d8f4c9dfb7 (patch) | |
tree | aa351e4df156119f673f731288d586a2e7e90217 /fs/bcachefs | |
parent | bcachefs: Fix shift-by-64 in bformat_needs_redo() (diff) | |
download | linux-8060bf1d83f7d404bacb0e5a38f2d4d8f4c9dfb7.tar.xz linux-8060bf1d83f7d404bacb0e5a38f2d4d8f4c9dfb7.zip |
bcachefs: Fix snapshot_t() usage in bch2_fs_quota_read_inode()
bch2_fs_quota_read_inode() wasn't entirely updated to the
bch2_snapshot_tree() helper, which takes rcu lock.
Reported-by: syzbot+a3a9a61224ed3b7f0010@syzkaller.appspotmail.com
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs')
-rw-r--r-- | fs/bcachefs/quota.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/fs/bcachefs/quota.c b/fs/bcachefs/quota.c index e68b34eab90a..556da0738106 100644 --- a/fs/bcachefs/quota.c +++ b/fs/bcachefs/quota.c @@ -560,13 +560,11 @@ static int bch2_fs_quota_read_inode(struct btree_trans *trans, struct bch_fs *c = trans->c; struct bch_inode_unpacked u; struct bch_snapshot_tree s_t; - int ret; + u32 tree = bch2_snapshot_tree(c, k.k->p.snapshot); - ret = bch2_snapshot_tree_lookup(trans, - bch2_snapshot_tree(c, k.k->p.snapshot), &s_t); + int ret = bch2_snapshot_tree_lookup(trans, tree, &s_t); bch2_fs_inconsistent_on(bch2_err_matches(ret, ENOENT), c, - "%s: snapshot tree %u not found", __func__, - snapshot_t(c, k.k->p.snapshot)->tree); + "%s: snapshot tree %u not found", __func__, tree); if (ret) return ret; |