aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/super.c
diff options
context:
space:
mode:
authorJustin Maggard <jmaggard10@gmail.com>2014-02-20 08:48:07 -0800
committerJosef Bacik <jbacik@fb.com>2014-03-10 15:16:45 -0400
commit2c6a92b0097464e08caaa1caeb8baa9d470ab990 (patch)
treedb734da8c42bd53320da9a5da7ba6e16a1ed0fe4 /fs/btrfs/super.c
parentBtrfs: stop joining the log transaction if sync log fails (diff)
downloadlinux-dev-2c6a92b0097464e08caaa1caeb8baa9d470ab990.tar.xz
linux-dev-2c6a92b0097464e08caaa1caeb8baa9d470ab990.zip
btrfs: wake up transaction thread upon remount
Now that we can adjust the commit interval with a remount, we need to wake up the transaction thread or else he will continue to sleep until the previous transaction interval has elapsed before waking up. So, if we go from a large commit interval to something smaller, the transaction thread will not wake up until the large interval has expired. This also causes the cleaner thread to stay sleeping, since it gets woken up by the transaction thread. Fix it by simply waking up the transaction thread during a remount. Signed-off-by: Justin Maggard <jmaggard10@gmail.com> Signed-off-by: Josef Bacik <jbacik@fb.com>
Diffstat (limited to 'fs/btrfs/super.c')
-rw-r--r--fs/btrfs/super.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index d04db817be5c..426b7c602653 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -1479,6 +1479,7 @@ static int btrfs_remount(struct super_block *sb, int *flags, char *data)
sb->s_flags &= ~MS_RDONLY;
}
out:
+ wake_up_process(fs_info->transaction_kthread);
btrfs_remount_cleanup(fs_info, old_opts);
return 0;