btrfs: wake up transaction thread upon remount
authorJustin Maggard <jmaggard10@gmail.com>
Thu, 20 Feb 2014 16:48:07 +0000 (08:48 -0800)
committerJosef Bacik <jbacik@fb.com>
Mon, 10 Mar 2014 19:16:45 +0000 (15:16 -0400)
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>
fs/btrfs/super.c

index d04db817be5c8271f531d87d0ee9a4a950f616f8..426b7c6026530a14c66114f1357723ead9332822 100644 (file)
@@ -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;