| From foo@baz Mon Jul 4 04:42:02 PM CEST 2022 |
| From: Amir Goldstein <amir73il@gmail.com> |
| Date: Sun, 3 Jul 2022 08:04:52 +0300 |
| Subject: xfs: Skip repetitive warnings about mount options |
| To: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Cc: Sasha Levin <sashal@kernel.org>, "Darrick J . Wong" <djwong@kernel.org>, Leah Rumancik <leah.rumancik@gmail.com>, Chandan Babu R <chandan.babu@oracle.com>, Luis Chamberlain <mcgrof@kernel.org>, Adam Manzanares <a.manzanares@samsung.com>, linux-xfs@vger.kernel.org, stable@vger.kernel.org, Pavel Reichl <preichl@redhat.com>, Eric Sandeen <sandeen@redhat.com>, Carlos Maiolino <cmaiolino@redhat.com> |
| Message-ID: <20220703050456.3222610-4-amir73il@gmail.com> |
| |
| From: Pavel Reichl <preichl@redhat.com> |
| |
| commit 92cf7d36384b99d5a57bf4422904a3c16dc4527a 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> |
| --- |
| fs/xfs/xfs_super.c | 24 ++++++++++++++++++++---- |
| 1 file changed, 20 insertions(+), 4 deletions(-) |
| |
| --- a/fs/xfs/xfs_super.c |
| +++ b/fs/xfs/xfs_super.c |
| @@ -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. |
| * |
| @@ -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; |