diff options
author | Josef Bacik <josef@toxicpanda.com> | 2021-12-03 17:18:08 -0500 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2022-01-07 14:18:24 +0100 |
commit | 7097a941bf75ed1f632342937984a24f0b1d76a4 (patch) | |
tree | 0abacacbc2ab65d855eecc4fb26f29b59a17efd6 /fs/btrfs/inode-item.c | |
parent | 2adc75d61203a7d7d0178e1c5402e1f792ac4636 (diff) | |
download | lwn-7097a941bf75ed1f632342937984a24f0b1d76a4.tar.gz lwn-7097a941bf75ed1f632342937984a24f0b1d76a4.zip |
btrfs: remove found_extent from btrfs_truncate_inode_items
We only set this if we find a normal file extent, del_item == 1, and the
file extent points to a real extent and isn't a hole extent. We can use
del_item == 1 && extent_start != 0 to get the same information that
found_extent provides, so remove this variable and use the other
variables instead.
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/inode-item.c')
-rw-r--r-- | fs/btrfs/inode-item.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/fs/btrfs/inode-item.c b/fs/btrfs/inode-item.c index a7c1408cada8..b79578895d3b 100644 --- a/fs/btrfs/inode-item.c +++ b/fs/btrfs/inode-item.c @@ -457,13 +457,11 @@ int btrfs_truncate_inode_items(struct btrfs_trans_handle *trans, struct btrfs_file_extent_item *fi; struct btrfs_key key; struct btrfs_key found_key; - u64 extent_start = 0; u64 extent_num_bytes = 0; u64 extent_offset = 0; u64 item_end = 0; u64 last_size = new_size; u32 found_type = (u8)-1; - int found_extent; int del_item; int pending_del_nr = 0; int pending_del_slot = 0; @@ -517,7 +515,7 @@ search_again: } while (1) { - u64 clear_start = 0, clear_len = 0; + u64 clear_start = 0, clear_len = 0, extent_start = 0; fi = NULL; leaf = path->nodes[0]; @@ -560,7 +558,7 @@ search_again: else del_item = 0; } - found_extent = 0; + /* FIXME, shrink the extent if the ref count is only 1 */ if (found_type != BTRFS_EXTENT_DATA_KEY) goto delete; @@ -598,7 +596,6 @@ search_again: /* FIXME blocksize != 4096 */ num_dec = btrfs_file_extent_num_bytes(leaf, fi); if (extent_start != 0) { - found_extent = 1; if (test_bit(BTRFS_ROOT_SHAREABLE, &root->state)) inode_sub_bytes(&inode->vfs_inode, @@ -677,7 +674,7 @@ delete: } should_throttle = false; - if (found_extent && + if (del_item && extent_start != 0 && root->root_key.objectid != BTRFS_TREE_LOG_OBJECTID) { struct btrfs_ref ref = { 0 }; |