Re: [PATCH v13 14/14] xfsprogs: Add delayed attribute flag to cmd

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

 



On Thu, Oct 22, 2020 at 11:33:06PM -0700, Allison Henderson wrote:
> From: Allison Collins <allison.henderson@xxxxxxxxxx>
> 
> mkfs: enable feature bit in mkfs via the '-n delattr' parameter.
> 
> Signed-off-by: Allison Collins <allison.henderson@xxxxxxxxxx>
> Signed-off-by: Allison Henderson <allison.henderson@xxxxxxxxxx>

I think it's sufficient to have one signoff here.

> ---
>  mkfs/xfs_mkfs.c | 24 +++++++++++++++++++++++-
>  1 file changed, 23 insertions(+), 1 deletion(-)
> 
> diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
> index 8fe149d..e18fb3a 100644
> --- a/mkfs/xfs_mkfs.c
> +++ b/mkfs/xfs_mkfs.c
> @@ -94,6 +94,7 @@ enum {
>  	N_SIZE = 0,
>  	N_VERSION,
>  	N_FTYPE,
> +	N_DELATTR,
>  	N_MAX_OPTS,
>  };
>  
> @@ -547,6 +548,7 @@ static struct opt_params nopts = {
>  		[N_SIZE] = "size",
>  		[N_VERSION] = "version",
>  		[N_FTYPE] = "ftype",
> +		[N_DELATTR] = "delattr",
>  	},
>  	.subopt_params = {
>  		{ .index = N_SIZE,
> @@ -569,6 +571,12 @@ static struct opt_params nopts = {
>  		  .maxval = 1,
>  		  .defaultval = 1,
>  		},
> +		{ .index = N_DELATTR,
> +		  .conflicts = { { NULL, LAST_CONFLICT } },
> +		  .minval = 0,
> +		  .maxval = 1,
> +		  .defaultval = 1,
> +		},
>  	},
>  };
>  
> @@ -742,6 +750,7 @@ struct sb_feat_args {
>  	bool	reflink;		/* XFS_SB_FEAT_RO_COMPAT_REFLINK */
>  	bool	nodalign;
>  	bool	nortalign;
> +	bool	delattr;		/* XFS_SB_FEAT_INCOMPAT_LOG_DELATTR */
>  };
>  
>  struct cli_params {
> @@ -873,7 +882,7 @@ usage( void )
>  /* log subvol */	[-l agnum=n,internal,size=num,logdev=xxx,version=n\n\
>  			    sunit=value|su=num,sectsize=num,lazy-count=0|1]\n\
>  /* label */		[-L label (maximum 12 characters)]\n\
> -/* naming */		[-n size=num,version=2|ci,ftype=0|1]\n\
> +/* naming */		[-n size=num,version=2|ci,ftype=0|1,delattr=0|1]\n\
>  /* no-op info only */	[-N]\n\
>  /* prototype file */	[-p fname]\n\
>  /* quiet */		[-q]\n\
> @@ -1592,6 +1601,9 @@ naming_opts_parser(
>  	case N_FTYPE:
>  		cli->sb_feat.dirftype = getnum(value, opts, subopt);
>  		break;
> +	case N_DELATTR:
> +		cli->sb_feat.delattr = getnum(value, &nopts, N_DELATTR);
> +		break;
>  	default:
>  		return -EINVAL;
>  	}
> @@ -1988,6 +2000,14 @@ _("reflink not supported without CRC support\n"));
>  		cli->sb_feat.reflink = false;
>  	}
>  
> +	if ((cli->sb_feat.delattr) &&
> +	    cli->sb_feat.dir_version == 4) {
> +		fprintf(stderr,
> +_("delayed attributes not supported on v4 filesystems\n"));

I think this should move a few lines up to the big batch of code that
turns off all the V5 features if crcs aren't enabled.

TBH this should silently turn off delattrs unless the admin explicitly
enabled them, because one day this will be enabled by default.

--D

> +		usage();
> +		cli->sb_feat.delattr = false;
> +	}
> +
>  	if ((cli->fsx.fsx_xflags & FS_XFLAG_COWEXTSIZE) &&
>  	    !cli->sb_feat.reflink) {
>  		fprintf(stderr,
> @@ -2953,6 +2973,8 @@ sb_set_features(
>  		sbp->sb_features_ro_compat |= XFS_SB_FEAT_RO_COMPAT_RMAPBT;
>  	if (fp->reflink)
>  		sbp->sb_features_ro_compat |= XFS_SB_FEAT_RO_COMPAT_REFLINK;
> +	if (fp->delattr)
> +		sbp->sb_features_log_incompat |= XFS_SB_FEAT_INCOMPAT_LOG_DELATTR;
>  
>  	/*
>  	 * Sparse inode chunk support has two main inode alignment requirements.
> -- 
> 2.7.4
> 



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux