summaryrefslogtreecommitdiff
path: root/fs/coda/inode.c
diff options
context:
space:
mode:
authorFilipe Manana <fdmanana@suse.com>2020-07-22 12:28:52 +0100
committerDavid Sterba <dsterba@suse.com>2020-07-27 12:55:48 +0200
commitfbc2bd7e7ab95704a96dade6a7d00ea99a68b015 (patch)
tree2a0b0a7b98e485914c1e762eab854fdb3c509cd3 /fs/coda/inode.c
parent3d6448e631591756da36efb3ea6355ff6f383c3a (diff)
downloadlwn-fbc2bd7e7ab95704a96dade6a7d00ea99a68b015.tar.gz
lwn-fbc2bd7e7ab95704a96dade6a7d00ea99a68b015.zip
btrfs: release old extent maps during page release
When removing an extent map at try_release_extent_mapping(), called through the page release callback (btrfs_releasepage()), we never release an extent map that is in the list of modified extents. This is to prevent races with a concurrent fsync using the fast path, which could lead to not logging an extent created in the current transaction. However we can safely remove an extent map created in a past transaction that is still in the list of modified extents (because no one fsynced yet the inode after that transaction got commited), because such extents are skipped during an fsync as it is pointless to log them. This change does that. Signed-off-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/coda/inode.c')
0 files changed, 0 insertions, 0 deletions