btrfs: handle ENOENT in btrfs_uuid_tree_iterate
If we get an -ENOENT back from btrfs_uuid_iter_rem when iterating the uuid tree we'll just continue and do btrfs_next_item(). However we've done a btrfs_release_path() at this point and no longer have a valid path. So increment the key and go back and do a normal search. CC: stable@vger.kernel.org # 4.4+ Reviewed-by: Filipe Manana <fdmanana@suse.com> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
c7e54b5102
commit
714cd3e8cb
|
@ -324,6 +324,8 @@ int btrfs_uuid_tree_iterate(struct btrfs_fs_info *fs_info,
|
|||
}
|
||||
if (ret < 0 && ret != -ENOENT)
|
||||
goto out;
|
||||
key.offset++;
|
||||
goto again_search_slot;
|
||||
}
|
||||
item_size -= sizeof(subid_le);
|
||||
offset += sizeof(subid_le);
|
||||
|
|
Loading…
Reference in New Issue
Block a user