From 8a46573c2a6bc68385538e5d10131c984df198e9 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Fri, 1 Feb 2013 15:21:04 -0500 Subject: Btrfs-progs: return an error if we can't find an fs root Instead of doing a BUG_ON() if we fail to find the last fs root just return an error so the callers can deal with it how they like. Also we need to actually return an error if we can't find the latest root so that the error handling works. With this btrfsck was able to deal with a file system that was missing a root item but still had extents that referred back to the root. Thanks, Signed-off-by: Josef Bacik --- root-tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'root-tree.c') diff --git a/root-tree.c b/root-tree.c index 782472c..ecb7599 100644 --- a/root-tree.c +++ b/root-tree.c @@ -47,7 +47,7 @@ int btrfs_find_last_root(struct btrfs_root *root, u64 objectid, slot = path->slots[0] - 1; btrfs_item_key_to_cpu(l, &found_key, slot); if (found_key.objectid != objectid) { - ret = 1; + ret = -ENOENT; goto out; } read_extent_buffer(l, item, btrfs_item_ptr_offset(l, slot), -- cgit v1.2.1