btrfs: log message when rw remount is attempted with unclean tree-log
authorDavid Sterba <dsterba@suse.com>
Wed, 5 Feb 2020 16:12:28 +0000 (17:12 +0100)
committerDavid Sterba <dsterba@suse.com>
Wed, 12 Feb 2020 16:17:00 +0000 (17:17 +0100)
A remount to a read-write filesystem is not safe when there's tree-log
to be replayed. Files that could be opened until now might be affected
by the changes in the tree-log.

A regular mount is needed to replay the log so the filesystem presents
the consistent view with the pending changes included.

CC: stable@vger.kernel.org # 4.4+
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/super.c

index 0616a54..67c6385 100644 (file)
@@ -1834,6 +1834,8 @@ static int btrfs_remount(struct super_block *sb, int *flags, char *data)
                }
 
                if (btrfs_super_log_root(fs_info->super_copy) != 0) {
+                       btrfs_warn(fs_info,
+               "mount required to replay tree-log, cannot remount read-write");
                        ret = -EINVAL;
                        goto restore;
                }