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
|