Skip to content

Commit

Permalink
xfs: Skip repetitive warnings about mount options
Browse files Browse the repository at this point in the history
commit 92cf7d3 upstream.

Skip the warnings about mount option being deprecated if we are
remounting and deprecated option state is not changing.

Bug: https://bugzilla.kernel.org/show_bug.cgi?id=211605
Fix-suggested-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Pavel Reichl <preichl@redhat.com>

Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Acked-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
preichl authored and gregkh committed Jul 7, 2022
1 parent 6b7dab8 commit da61388
Showing 1 changed file with 20 additions and 4 deletions.
24 changes: 20 additions & 4 deletions fs/xfs/xfs_super.c
Original file line number Diff line number Diff line change
Expand Up @@ -1155,6 +1155,22 @@ suffix_kstrtoint(
return ret;
}

static inline void
xfs_fs_warn_deprecated(
struct fs_context *fc,
struct fs_parameter *param,
uint64_t flag,
bool value)
{
/* Don't print the warning if reconfiguring and current mount point
* already had the flag set
*/
if ((fc->purpose & FS_CONTEXT_FOR_RECONFIGURE) &&
!!(XFS_M(fc->root->d_sb)->m_flags & flag) == value)
return;
xfs_warn(fc->s_fs_info, "%s mount option is deprecated.", param->key);
}

/*
* Set mount state from a mount option.
*
Expand Down Expand Up @@ -1294,19 +1310,19 @@ xfs_fc_parse_param(
#endif
/* Following mount options will be removed in September 2025 */
case Opt_ikeep:
xfs_warn(parsing_mp, "%s mount option is deprecated.", param->key);
xfs_fs_warn_deprecated(fc, param, XFS_MOUNT_IKEEP, true);
parsing_mp->m_flags |= XFS_MOUNT_IKEEP;
return 0;
case Opt_noikeep:
xfs_warn(parsing_mp, "%s mount option is deprecated.", param->key);
xfs_fs_warn_deprecated(fc, param, XFS_MOUNT_IKEEP, false);
parsing_mp->m_flags &= ~XFS_MOUNT_IKEEP;
return 0;
case Opt_attr2:
xfs_warn(parsing_mp, "%s mount option is deprecated.", param->key);
xfs_fs_warn_deprecated(fc, param, XFS_MOUNT_ATTR2, true);
parsing_mp->m_flags |= XFS_MOUNT_ATTR2;
return 0;
case Opt_noattr2:
xfs_warn(parsing_mp, "%s mount option is deprecated.", param->key);
xfs_fs_warn_deprecated(fc, param, XFS_MOUNT_NOATTR2, true);
parsing_mp->m_flags &= ~XFS_MOUNT_ATTR2;
parsing_mp->m_flags |= XFS_MOUNT_NOATTR2;
return 0;
Expand Down

0 comments on commit da61388

Please sign in to comment.