btrfs: handle ENOENT in btrfs_uuid_tree_iterate
commit 714cd3e8cba6841220dce9063a7388a81de03825 upstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
f4e54ec69b
commit
41c5a0b6ae
1 changed files with 2 additions and 0 deletions
|
@ -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 a new issue