]> git.hungrycats.org Git - linux/commitdiff
Btrfs: don't check for delalloc_bytes in cache_save_setup
authorChris Mason <clm@fb.com>
Sat, 18 Apr 2015 12:22:48 +0000 (05:22 -0700)
committerZygo Blaxell <zblaxell@serenity.furryterror.org>
Mon, 4 May 2015 00:45:42 +0000 (20:45 -0400)
Now that we're doing free space cache writeback outside the critical
section in the commit, there is a bigger window for delalloc_bytes to
be added after a cache has been written.  find_free_extent may do this
without putting the block group back into the dirty list, and also
without a transaction running.

Checking for delalloc_bytes in cache_save_setup means we might leave the
cache marked as written without invalidating it.  Consistency checks
during mount will toss the cache, but it's better to get rid of the
check in cache_save_setup and let it get invalidated by the checks
already done during cache write out.

Signed-off-by: Chris Mason <clm@fb.com>
(cherry picked from commit e4c88f007be78d38eaef316c599a1ee2f0272c15)

fs/btrfs/extent-tree.c

index 4adab52f44577fc0abc4f92d99fbce124eba0315..e955711577f55247375e2ca6de86d0d345f962ae 100644 (file)
@@ -3305,8 +3305,7 @@ again:
 
        spin_lock(&block_group->lock);
        if (block_group->cached != BTRFS_CACHE_FINISHED ||
-           !btrfs_test_opt(root, SPACE_CACHE) ||
-           block_group->delalloc_bytes) {
+           !btrfs_test_opt(root, SPACE_CACHE)) {
                /*
                 * don't bother trying to write stuff out _if_
                 * a) we're not cached,