linux_dsm_epyc7002/fs/btrfs
Filipe Manana d611add48b btrfs: fix reclaim counter leak of space_info objects
Whenever we add a ticket to a space_info object we increment the object's
reclaim_size counter witht the ticket's bytes, and we decrement it with
the corresponding amount only when we are able to grant the requested
space to the ticket. When we are not able to grant the space to a ticket,
or when the ticket is removed due to a signal (e.g. an application has
received sigterm from the terminal) we never decrement the counter with
the corresponding bytes from the ticket. This leak can result in the
space reclaim code to later do much more work than necessary. So fix it
by decrementing the counter when those two cases happen as well.

Fixes: db161806dc ("btrfs: account ticket size at add/delete time")
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2020-04-08 19:11:19 +02:00
..
tests btrfs: kill the subvol_srcu 2020-03-23 17:02:00 +01:00
acl.c
async-thread.c Btrfs: fix crash during unmount due to race with delayed inode workers 2020-03-23 17:01:51 +01:00
async-thread.h Btrfs: fix crash during unmount due to race with delayed inode workers 2020-03-23 17:01:51 +01:00
backref.c btrfs: do not resolve backrefs for roots that are being deleted 2020-03-23 17:03:51 +01:00
backref.h btrfs: relocation: Use btrfs_find_all_leafs to locate data extent parent tree leaves 2020-03-23 17:01:57 +01:00
block-group.c btrfs: fix reclaim counter leak of space_info objects 2020-04-08 19:11:19 +02:00
block-group.h
block-rsv.c btrfs: Remove __ prefix from btrfs_block_rsv_release 2020-03-23 17:01:55 +01:00
block-rsv.h btrfs: Remove __ prefix from btrfs_block_rsv_release 2020-03-23 17:01:55 +01:00
btrfs_inode.h
check-integrity.c
check-integrity.h
compression.c
compression.h
ctree.c btrfs: inline checksum name and driver definitions 2020-03-23 17:01:52 +01:00
ctree.h btrfs: kill the subvol_srcu 2020-03-23 17:02:00 +01:00
delalloc-space.c btrfs: Remove __ prefix from btrfs_block_rsv_release 2020-03-23 17:01:55 +01:00
delalloc-space.h
delayed-inode.c btrfs: use nofs allocations for running delayed items 2020-03-25 16:26:00 +01:00
delayed-inode.h btrfs: delayed-inode: Replace zero-length array with flexible-array member 2020-03-23 17:01:53 +01:00
delayed-ref.c btrfs: Remove __ prefix from btrfs_block_rsv_release 2020-03-23 17:01:55 +01:00
delayed-ref.h
dev-replace.c
dev-replace.h
dir-item.c
discard.c
discard.h
disk-io.c btrfs: kill the subvol_srcu 2020-03-23 17:02:00 +01:00
disk-io.h btrfs: move the root freeing stuff into btrfs_put_root 2020-03-23 17:01:59 +01:00
export.c btrfs: kill the subvol_srcu 2020-03-23 17:02:00 +01:00
export.h
extent_io.c btrfs: move the root freeing stuff into btrfs_put_root 2020-03-23 17:01:59 +01:00
extent_io.h btrfs: make the extent buffer leak check per fs info 2020-03-23 17:01:58 +01:00
extent_map.c
extent_map.h
extent-io-tree.h
extent-tree.c btrfs: do not use readahead for running delayed refs 2020-03-23 17:03:50 +01:00
file-item.c btrfs: add helper to get the end offset of a file extent item 2020-03-23 17:01:56 +01:00
file.c btrfs: make full fsyncs always operate on the entire file again 2020-04-08 19:10:52 +02:00
free-space-cache.c
free-space-cache.h
free-space-tree.c btrfs: move the root freeing stuff into btrfs_put_root 2020-03-23 17:01:59 +01:00
free-space-tree.h
inode-item.c
inode-map.c btrfs: Remove __ prefix from btrfs_block_rsv_release 2020-03-23 17:01:55 +01:00
inode-map.h
inode.c btrfs: kill the subvol_srcu 2020-03-23 17:02:00 +01:00
ioctl.c btrfs: Remove async_transid from btrfs_mksubvol/create_subvol/create_snapshot 2020-03-23 17:02:00 +01:00
Kconfig
locking.c
locking.h
lzo.c
Makefile Btrfs: move all reflink implementation code into its own file 2020-03-23 17:01:54 +01:00
misc.h
ordered-data.c
ordered-data.h
orphan.c
print-tree.c
print-tree.h
props.c btrfs: Remove __ prefix from btrfs_block_rsv_release 2020-03-23 17:01:55 +01:00
props.h
qgroup.c btrfs: move the root freeing stuff into btrfs_put_root 2020-03-23 17:01:59 +01:00
qgroup.h
raid56.c
raid56.h
rcu-string.h btrfs: rcu-string: Replace zero-length array with flexible-array member 2020-03-23 17:01:53 +01:00
reada.c
ref-verify.c btrfs: fix ref-verify to catch operations on 0 ref extents 2020-03-23 17:01:56 +01:00
ref-verify.h
reflink.c btrfs: fix lost i_size update after cloning inline extent 2020-04-08 19:10:34 +02:00
reflink.h Btrfs: move all reflink implementation code into its own file 2020-03-23 17:01:54 +01:00
relocation.c btrfs: check commit root generation in should_ignore_root 2020-04-08 19:10:31 +02:00
root-tree.c btrfs: Remove __ prefix from btrfs_block_rsv_release 2020-03-23 17:01:55 +01:00
scrub.c btrfs: scrub: Replace zero-length array with flexible-array member 2020-03-23 17:01:54 +01:00
send.c btrfs: kill the subvol_srcu 2020-03-23 17:02:00 +01:00
send.h
space-info.c btrfs: fix reclaim counter leak of space_info objects 2020-04-08 19:11:19 +02:00
space-info.h btrfs: account ticket size at add/delete time 2020-03-23 17:01:55 +01:00
struct-funcs.c
super.c btrfs: adjust message level for unrecognized mount option 2020-03-23 17:01:45 +01:00
sysfs.c btrfs: sysfs: Use scnprintf() instead of snprintf() 2020-03-23 18:14:47 +01:00
sysfs.h
transaction.c btrfs: hold a ref on the root on the dead roots list 2020-03-23 17:01:59 +01:00
transaction.h
tree-checker.c
tree-checker.h
tree-defrag.c
tree-log.c btrfs: make full fsyncs always operate on the entire file again 2020-04-08 19:10:52 +02:00
tree-log.h
ulist.c
ulist.h
uuid-tree.c
volumes.c btrfs: relocation: add error injection points for cancelling balance 2020-03-23 17:01:54 +01:00
volumes.h btrfs: introduce chunk allocation policy 2020-03-23 17:01:48 +01:00
xattr.c
xattr.h
zlib.c
zstd.c