summaryrefslogtreecommitdiff
path: root/fs/ext4/resize.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2019-11-05 17:44:15 +0100
committerTheodore Ts'o <tytso@mit.edu>2019-11-05 16:00:47 -0500
commitf2890730f8292831b7741d89a65b9c6834d85ee6 (patch)
treebe60efe44093c35e78bf5f87259f27f94d2b7bf7 /fs/ext4/resize.c
parent6cb367c2d1f8875043aa2d238eca9a2602dc1f72 (diff)
downloadlwn-f2890730f8292831b7741d89a65b9c6834d85ee6.tar.gz
lwn-f2890730f8292831b7741d89a65b9c6834d85ee6.zip
ext4: Avoid unnecessary revokes in ext4_alloc_branch()
Error cleanup path in ext4_alloc_branch() calls ext4_forget() on freshly allocated indirect blocks with 'metadata' set to 1. This results in generating revoke records for these blocks. However this is unnecessary as the freed blocks are only allocated in the current transaction and thus they will never be journalled. Make this cleanup path similar to e.g. cleanup in ext4_splice_branch() and use ext4_free_blocks() to handle block forgetting by passing EXT4_FREE_BLOCKS_FORGET and not EXT4_FREE_BLOCKS_METADATA to ext4_free_blocks(). This also allows allocating transaction not to reserve any credits for revoke records. Reviewed-by: Theodore Ts'o <tytso@mit.edu> Signed-off-by: Jan Kara <jack@suse.cz> Link: https://lore.kernel.org/r/20191105164437.32602-9-jack@suse.cz Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/resize.c')
0 files changed, 0 insertions, 0 deletions