summaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_super.c
diff options
context:
space:
mode:
authorEric Sandeen2015-04-13 03:25:41 +0200
committerDave Chinner2015-04-13 03:25:41 +0200
commitbbe051c841d522bf2aaa1d362b57fe47457187bf (patch)
tree45f55239cc81b63aff4f457c1365b87675bc8936 /fs/xfs/xfs_super.c
parentxfs: xfs_shift_file_space can be static (diff)
downloadkernel-qcow2-linux-bbe051c841d522bf2aaa1d362b57fe47457187bf.tar.gz
kernel-qcow2-linux-bbe051c841d522bf2aaa1d362b57fe47457187bf.tar.xz
kernel-qcow2-linux-bbe051c841d522bf2aaa1d362b57fe47457187bf.zip
xfs: disallow ro->rw remount on norecovery mount
There's a bit of a loophole in norecovery mount handling right now: an initial mount must be readonly, but nothing prevents a mount -o remount,rw from producing a writable, unrecovered xfs filesystem. It might be possible to try to perform a log recovery when this is requested, but I'm not sure it's worth the effort. For now, simply disallow this sort of transition. Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/xfs/xfs_super.c')
-rw-r--r--fs/xfs/xfs_super.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
index 58453e3255f8..02718638dc12 100644
--- a/fs/xfs/xfs_super.c
+++ b/fs/xfs/xfs_super.c
@@ -1237,6 +1237,12 @@ xfs_fs_remount(
/* ro -> rw */
if ((mp->m_flags & XFS_MOUNT_RDONLY) && !(*flags & MS_RDONLY)) {
+ if (mp->m_flags & XFS_MOUNT_NORECOVERY) {
+ xfs_warn(mp,
+ "ro->rw transition prohibited on norecovery mount");
+ return -EINVAL;
+ }
+
mp->m_flags &= ~XFS_MOUNT_RDONLY;
/*