Re: [PATCH] xfs: disallow rw remount on fs with unknown ro-compat features

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Mar 29, 2016 at 02:28:28PM -0500, Eric Sandeen wrote:
> Today, a kernel which refuses to mount a filesystem read-write
> due to unknown ro-compat features can still transition to read-write
> via the remount path.  The old kernel is most likely none the wiser,
> because it's unaware of the new feature, and isn't using it.  However,
> writing to the filesystem may well corrupt metadata related to that
> new feature, and moving to a newer kernel which understand the feature
> will have problems.
> 
> Right now the only ro-compat feature we have is the free inode btree,
> which showed up in v3.16.  It would be good to push this back to
> all the active stable kernels, I think, so that if anyone is using
> newer mkfs (which enables the finobt feature) with older kernel
> releases, they'll be protected.
> 
> Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> ---

Reviewed-by: Bill O'Donnell <billodo@xxxxxxxxxx>

> 
> diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
> index d760934..ca058a1 100644
> --- a/fs/xfs/xfs_super.c
> +++ b/fs/xfs/xfs_super.c
> @@ -1276,6 +1276,16 @@ xfs_fs_remount(
>  			return -EINVAL;
>  		}
>  
> +		if (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5 &&
> +		    xfs_sb_has_ro_compat_feature(sbp,
> +					XFS_SB_FEAT_RO_COMPAT_UNKNOWN)) {
> +			xfs_warn(mp,
> +"ro->rw transition prohibited on unknown (0x%x) ro-compat filesystem",
> +				(sbp->sb_features_ro_compat &
> +					XFS_SB_FEAT_RO_COMPAT_UNKNOWN));
> +			return -EINVAL;
> +		}
> +
>  		mp->m_flags &= ~XFS_MOUNT_RDONLY;
>  
>  		/*
> 
> _______________________________________________
> xfs mailing list
> xfs@xxxxxxxxxxx
> http://oss.sgi.com/mailman/listinfo/xfs

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs



[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux