mirror of
https://github.com/torvalds/linux
synced 2024-09-21 03:28:37 +00:00
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:
parent
068fe39fa1
commit
7261009cea
|
@ -507,11 +507,12 @@ int btrfs_drop_extents(struct btrfs_trans_handle *trans,
|
||||||
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) {
|
||||||
|
|
Loading…
Reference in a new issue