summaryrefslogtreecommitdiff
path: root/libbcachefs/fsck.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbcachefs/fsck.c')
-rw-r--r--libbcachefs/fsck.c23
1 files changed, 4 insertions, 19 deletions
diff --git a/libbcachefs/fsck.c b/libbcachefs/fsck.c
index 3622fb4d..208bf6df 100644
--- a/libbcachefs/fsck.c
+++ b/libbcachefs/fsck.c
@@ -103,29 +103,14 @@ static int snapshot_lookup_subvol(struct btree_trans *trans, u32 snapshot,
static int __subvol_lookup(struct btree_trans *trans, u32 subvol,
u32 *snapshot, u64 *inum)
{
- struct btree_iter iter;
- struct bkey_s_c k;
+ struct bch_subvolume s;
int ret;
- bch2_trans_iter_init(trans, &iter, BTREE_ID_subvolumes,
- POS(0, subvol), 0);
- k = bch2_btree_iter_peek_slot(&iter);
- ret = bkey_err(k);
- if (ret)
- goto err;
+ ret = bch2_subvolume_get(trans, subvol, false, 0, &s);
- if (k.k->type != KEY_TYPE_subvolume) {
- bch_err(trans->c, "subvolume %u not fonud", subvol);
- ret = -ENOENT;
- goto err;
- }
-
- *snapshot = le32_to_cpu(bkey_s_c_to_subvolume(k).v->snapshot);
- *inum = le64_to_cpu(bkey_s_c_to_subvolume(k).v->inode);
-err:
- bch2_trans_iter_exit(trans, &iter);
+ *snapshot = le32_to_cpu(s.snapshot);
+ *inum = le64_to_cpu(s.inode);
return ret;
-
}
static int subvol_lookup(struct btree_trans *trans, u32 subvol,