diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index e5ed222267eeafa4f1846586cc44af4ca595a2dc..4492e017bdb216ae6d58a71e24b8e5d589ec8a97 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -5288,6 +5288,12 @@ long btrfs_ioctl(struct file *file, unsigned int if (ret) return ret; ret = btrfs_sync_fs(file->f_dentry->d_sb, 1); + /* + * The transaction thread may want to do more work, + * namely it pokes the cleaner ktread that will start + * processing uncleaned subvols. + */ + wake_up_process(root->fs_info->transaction_kthread); return ret; } case BTRFS_IOC_START_SYNC: