mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 18:51:21 +02:00
btrfs: handle invalid extent item reference found in find_first_extent_item()
The find_first_extent_item() helper looks up an extent item by a key, allowing to do an inexact search when key->offset is -1. It's never expected to find such item, as it would break the allowed range of a extent item offset. Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
11dcc86eba
commit
f626a0f5b8
|
|
@ -1390,8 +1390,15 @@ static int find_first_extent_item(struct btrfs_root *extent_root,
|
|||
ret = btrfs_search_slot(NULL, extent_root, &key, path, 0, 0);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
if (ret == 0) {
|
||||
/*
|
||||
* Key with offset -1 found, there would have to exist an extent
|
||||
* item with such offset, but this is out of the valid range.
|
||||
*/
|
||||
btrfs_release_path(path);
|
||||
return -EUCLEAN;
|
||||
}
|
||||
|
||||
ASSERT(ret > 0);
|
||||
/*
|
||||
* Here we intentionally pass 0 as @min_objectid, as there could be
|
||||
* an extent item starting before @search_start.
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user