btrfs_drop_extents: handle BTRFS_INODE_REF_KEY types
It's possible "key.type == BTRFS_INODE_REF_KEY" and "key.offset >= end". Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
@@ -507,11 +507,12 @@ next_slot:
|
|||||||
slot = path->slots[0];
|
slot = path->slots[0];
|
||||||
ret = 0;
|
ret = 0;
|
||||||
btrfs_item_key_to_cpu(leaf, &key, slot);
|
btrfs_item_key_to_cpu(leaf, &key, slot);
|
||||||
|
if (btrfs_key_type(&key) == BTRFS_EXTENT_DATA_KEY &&
|
||||||
if (key.offset >= end || key.objectid != inode->i_ino) {
|
key.offset >= end) {
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if (btrfs_key_type(&key) > BTRFS_EXTENT_DATA_KEY) {
|
if (btrfs_key_type(&key) > BTRFS_EXTENT_DATA_KEY ||
|
||||||
|
key.objectid != inode->i_ino) {
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if (recow) {
|
if (recow) {
|
||||||
|
Reference in New Issue
Block a user