]> git.baikalelectronics.ru Git - kernel.git/commit
btrfs: actively run the delayed refs while deleting large files
authorChris Mason <clm@fb.com>
Wed, 17 Dec 2014 17:41:04 +0000 (09:41 -0800)
committerChris Mason <clm@fb.com>
Fri, 10 Apr 2015 21:00:14 +0000 (14:00 -0700)
commitf8cfaeb121f69df562eef6ad3bd58edbe86f1913
treebd620b07d9b964680dca517d7dd052f294c13a2c
parent890ba2f83a17d5d7ad04bdbb4ced860ca1a22dde
btrfs: actively run the delayed refs while deleting large files

When we are deleting large files with large extents, we are building up
a huge set of delayed refs for processing.  Truncate isn't checking
often enough to see if we need to back off and process those, or let
a commit proceed.

The end result is long stalls after the rm, and very long commit times.
During the commits, other processes back up waiting to start new
transactions and we get into trouble.

Signed-off-by: Chris Mason <clm@fb.com>
fs/btrfs/free-space-cache.c
fs/btrfs/inode.c
fs/btrfs/transaction.c
fs/btrfs/tree-log.c