On Wed, Dec 11, 2024 at 09:55:05AM +0100, Christoph Hellwig wrote: > Allow limiting the number of open zones used below that exported by the > device. This is required to tune the number of write streams when zoned > RT devices are used on conventional devices, and can be useful on zoned > devices that support a very large number of open zones. Can this be changed during a remount operation? Do we have to revalidate the value? --D > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > fs/xfs/xfs_super.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c > index 690bb068a23a..e24f6a608b91 100644 > --- a/fs/xfs/xfs_super.c > +++ b/fs/xfs/xfs_super.c > @@ -110,7 +110,7 @@ enum { > Opt_filestreams, Opt_quota, Opt_noquota, Opt_usrquota, Opt_grpquota, > Opt_prjquota, Opt_uquota, Opt_gquota, Opt_pquota, > Opt_uqnoenforce, Opt_gqnoenforce, Opt_pqnoenforce, Opt_qnoenforce, > - Opt_discard, Opt_nodiscard, Opt_dax, Opt_dax_enum, > + Opt_discard, Opt_nodiscard, Opt_dax, Opt_dax_enum, Opt_max_open_zones, > }; > > static const struct fs_parameter_spec xfs_fs_parameters[] = { > @@ -155,6 +155,7 @@ static const struct fs_parameter_spec xfs_fs_parameters[] = { > fsparam_flag("nodiscard", Opt_nodiscard), > fsparam_flag("dax", Opt_dax), > fsparam_enum("dax", Opt_dax_enum, dax_param_enums), > + fsparam_u32("max_open_zones", Opt_max_open_zones), > {} > }; > > @@ -234,6 +235,9 @@ xfs_fs_show_options( > if (!(mp->m_qflags & XFS_ALL_QUOTA_ACCT)) > seq_puts(m, ",noquota"); > > + if (mp->m_max_open_zones) > + seq_printf(m, ",max_open_zones=%u", mp->m_max_open_zones); > + > return 0; > } > > @@ -1456,6 +1460,9 @@ xfs_fs_parse_param( > xfs_fs_warn_deprecated(fc, param, XFS_FEAT_NOATTR2, true); > parsing_mp->m_features |= XFS_FEAT_NOATTR2; > return 0; > + case Opt_max_open_zones: > + parsing_mp->m_max_open_zones = result.uint_32; > + return 0; > default: > xfs_warn(parsing_mp, "unknown mount option [%s].", param->key); > return -EINVAL; > -- > 2.45.2 > >