Btrfs: account for crcs in delayed ref processing
authorJosef Bacik <jbacik@fb.com>
Tue, 3 Feb 2015 15:50:16 +0000 (07:50 -0800)
committerChris Mason <clm@fb.com>
Fri, 10 Apr 2015 21:04:47 +0000 (14:04 -0700)
commit1262133b8d6f10f5ca7621cd4cf65ddf6254126a
treeac508ea4fc6d1e9b394ac2bdfee04eb20f5fc930
parent28ed1345a50491d78e1454ad4005dc5d3557a69e
Btrfs: account for crcs in delayed ref processing

As we delete large extents, we end up doing huge amounts of COW in order
to delete the corresponding crcs.  This adds accounting so that we keep
track of that space and flushing of delayed refs so that we don't build
up too much delayed crc work.

This helps limit the delayed work that must be done at commit time and
tries to avoid ENOSPC aborts because the crcs eat all the global
reserves.

Signed-off-by: Chris Mason <clm@fb.com>
fs/btrfs/delayed-ref.c
fs/btrfs/delayed-ref.h
fs/btrfs/extent-tree.c
fs/btrfs/inode.c
fs/btrfs/transaction.c