btrfs: account ticket size at add/delete time
authorNikolay Borisov <nborisov@suse.com>
Tue, 10 Mar 2020 09:00:35 +0000 (11:00 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 23 Mar 2020 16:01:55 +0000 (17:01 +0100)
commitdb161806dc5615a42893a1df7d803d12890699d9
treefc1e73dc39b5788350afaec5e31a3dc3a185ccc5
parentf8e6608180a31cc72a23b74969da428da236dbd1
btrfs: account ticket size at add/delete time

Instead of iterating all pending tickets on the normal/priority list to
sum their total size the cost can be amortized across ticket addition/
removal. This turns O(n) + O(m) (where n is the size of the normal list
and m of the priority list) into O(1). This will mostly have effect in
workloads that experience heavy flushing.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/space-info.c
fs/btrfs/space-info.h