diff options
Diffstat (limited to 'fs/btrfs/disk-io.c')
-rw-r--r-- | fs/btrfs/disk-io.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 18eefc5b2532..6a2a2a951705 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c | |||
@@ -1682,6 +1682,8 @@ static int cleaner_kthread(void *arg) | |||
1682 | while (1) { | 1682 | while (1) { |
1683 | again = 0; | 1683 | again = 0; |
1684 | 1684 | ||
1685 | set_bit(BTRFS_FS_CLEANER_RUNNING, &fs_info->flags); | ||
1686 | |||
1685 | /* Make the cleaner go to sleep early. */ | 1687 | /* Make the cleaner go to sleep early. */ |
1686 | if (btrfs_need_cleaner_sleep(fs_info)) | 1688 | if (btrfs_need_cleaner_sleep(fs_info)) |
1687 | goto sleep; | 1689 | goto sleep; |
@@ -1728,6 +1730,7 @@ static int cleaner_kthread(void *arg) | |||
1728 | */ | 1730 | */ |
1729 | btrfs_delete_unused_bgs(fs_info); | 1731 | btrfs_delete_unused_bgs(fs_info); |
1730 | sleep: | 1732 | sleep: |
1733 | clear_bit(BTRFS_FS_CLEANER_RUNNING, &fs_info->flags); | ||
1731 | if (kthread_should_park()) | 1734 | if (kthread_should_park()) |
1732 | kthread_parkme(); | 1735 | kthread_parkme(); |
1733 | if (kthread_should_stop()) | 1736 | if (kthread_should_stop()) |