Btrfs: free up block groups after everything
authorJosef Bacik <jbacik@fusionio.com>
Mon, 7 Oct 2013 19:14:44 +0000 (15:14 -0400)
committerChris Mason <chris.mason@fusionio.com>
Tue, 12 Nov 2013 02:56:17 +0000 (21:56 -0500)
If we abort a transaction we will do the tree log cleanup at unmount, but this
happens after we free up the block groups.  This makes all the leak detection
warnings go off because we think we've leaked space but in reality we just
haven't cleaned it up yet.  So instead do the block group cleanup stuff after
free'ing the fs roots so we don't get these warnings.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
fs/btrfs/disk-io.c

index fdc75ab094838a242cbec897927497b60f391be0..419968e3eaa00d899351dff426594296511b2866 100644 (file)
@@ -3637,12 +3637,12 @@ int close_ctree(struct btrfs_root *root)
                       percpu_counter_sum(&fs_info->delalloc_bytes));
        }
 
-       btrfs_free_block_groups(fs_info);
-
        btrfs_stop_all_workers(fs_info);
 
        del_fs_roots(fs_info);
 
+       btrfs_free_block_groups(fs_info);
+
        free_root_pointers(fs_info, 1);
 
        iput(fs_info->btree_inode);