aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/disk-io.c
diff options
context:
space:
mode:
authorChris Mason <clm@fb.com>2015-08-09 07:35:33 -0700
committerChris Mason <clm@fb.com>2015-08-09 07:35:33 -0700
commit46cd28555ffaa40162290dba203daad0ff6f7abd (patch)
treea10fd81b6c7ff5ea7642b1e2462e529971e8713a /fs/btrfs/disk-io.c
parentBtrfs: add support for blkio controllers (diff)
parentbtrfs: add missing discards when unpinning extents with -o discard (diff)
downloadlinux-dev-46cd28555ffaa40162290dba203daad0ff6f7abd.tar.xz
linux-dev-46cd28555ffaa40162290dba203daad0ff6f7abd.zip
Merge branch 'jeffm-discard-4.3' into for-linus-4.3
Diffstat (limited to 'fs/btrfs/disk-io.c')
-rw-r--r--fs/btrfs/disk-io.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 230546b45474..cc15514b4a76 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -3761,6 +3761,15 @@ void close_ctree(struct btrfs_root *root)
cancel_work_sync(&fs_info->async_reclaim_work);
if (!(fs_info->sb->s_flags & MS_RDONLY)) {
+ /*
+ * If the cleaner thread is stopped and there are
+ * block groups queued for removal, the deletion will be
+ * skipped when we quit the cleaner thread.
+ */
+ mutex_lock(&root->fs_info->cleaner_mutex);
+ btrfs_delete_unused_bgs(root->fs_info);
+ mutex_unlock(&root->fs_info->cleaner_mutex);
+
ret = btrfs_commit_super(root);
if (ret)
btrfs_err(fs_info, "commit super ret %d", ret);