mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-04 18:09:57 +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
1 changed files with 4 additions and 3 deletions
|
@ -507,11 +507,12 @@ int btrfs_drop_extents(struct btrfs_trans_handle *trans,
|
|||
slot = path->slots[0];
|
||||
ret = 0;
|
||||
btrfs_item_key_to_cpu(leaf, &key, slot);
|
||||
|
||||
if (key.offset >= end || key.objectid != inode->i_ino) {
|
||||
if (btrfs_key_type(&key) == BTRFS_EXTENT_DATA_KEY &&
|
||||
key.offset >= end) {
|
||||
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;
|
||||
}
|
||||
if (recow) {
|
||||
|
|
Loading…
Reference in a new issue