aboutsummaryrefslogtreecommitdiff
path: root/fs/nfsd
diff options
context:
space:
mode:
authorGravatar Josef Bacik <josef@toxicpanda.com> 2021-01-15 16:48:55 -0500
committerGravatar David Sterba <dsterba@suse.com> 2021-02-08 22:58:55 +0100
commit2187374f35fe9cadbddaa9fcf0c4121365d914e8 (patch)
treeb4b8e9440914db49bc0db5bf36712674e4228de4 /fs/nfsd
parentbtrfs: enable W=1 checks for btrfs (diff)
downloadlinux-2187374f35fe9cadbddaa9fcf0c4121365d914e8.tar.gz
linux-2187374f35fe9cadbddaa9fcf0c4121365d914e8.tar.bz2
linux-2187374f35fe9cadbddaa9fcf0c4121365d914e8.zip
btrfs: handle space_info::total_bytes_pinned inside the delayed ref itself
Currently we pass things around to figure out if we maybe freeing data based on the state of the delayed refs head. This makes the accounting sort of confusing and hard to follow, as it's distinctly separate from the delayed ref heads stuff, but also depends on it entirely. Fix this by explicitly adjusting the space_info->total_bytes_pinned in the delayed refs code. We now have two places where we modify this counter, once where we create the delayed and destroy the delayed refs, and once when we pin and unpin the extents. This means there is a slight overlap between delayed refs and the pin/unpin mechanisms, but this is simply used by the ENOSPC infrastructure to determine if we need to commit the transaction, so there's no adverse affect from this, we might simply commit thinking it will give us enough space when it might not. CC: stable@vger.kernel.org # 5.10 Reviewed-by: Nikolay Borisov <nborisov@suse.com> Signed-off-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/nfsd')
0 files changed, 0 insertions, 0 deletions