Linux-EROFS Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Gao Xiang <xiang@kernel.org>
To: Naoto Yamaguchi <wata2ki@gmail.com>
Cc: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>,
	linux-erofs@lists.ozlabs.org
Subject: Re: [PATCH] erofs-utils: mkfs: Add volume-name setting support
Date: Wed, 5 Oct 2022 00:49:23 +0800	[thread overview]
Message-ID: <YzxkE6rN1KcZmF09@debian> (raw)
In-Reply-To: <20221004164324.11481-1-naoto.yamaguchi@aisin.co.jp>

On Wed, Oct 05, 2022 at 01:43:24AM +0900, Naoto Yamaguchi wrote:
> The erofs_super_block has volume_name field.  On the other hand,
> mkfs.erofs is not supporting to set volume name.
> This patch add volume-name setting support to mkfs.erofs.
> Option keyword is similar to mkfs.vfat.
> 
> usage:
>   mkfs.erofs -n volume-name image-fn dir
> 

commit message is not updated... also it'd be better to bump
up the patch version in the subject line like:

[PATCH v2] erofs-utils: mkfs: ...

> Signed-off-by: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>
> ---
>  include/erofs/internal.h |  1 +
>  man/mkfs.erofs.1         |  5 +++++
>  mkfs/main.c              | 13 ++++++++++++-
>  3 files changed, 18 insertions(+), 1 deletion(-)
> 
> diff --git a/include/erofs/internal.h b/include/erofs/internal.h
> index 2e0aae8..7dc42eb 100644
> --- a/include/erofs/internal.h
> +++ b/include/erofs/internal.h
> @@ -92,6 +92,7 @@ struct erofs_sb_info {
>  	u64 inos;
>  
>  	u8 uuid[16];
> +	char volume_name[16];
>  
>  	u16 available_compr_algs;
>  	u16 lz4_max_distance;
> diff --git a/man/mkfs.erofs.1 b/man/mkfs.erofs.1
> index 11e8323..b65d01b 100644
> --- a/man/mkfs.erofs.1
> +++ b/man/mkfs.erofs.1
> @@ -66,6 +66,11 @@ Pack the tail part (pcluster) of compressed files into its metadata to save
>  more space and the tail part I/O. (Linux v5.17+)
>  .RE
>  .TP
> +.BI "\-L " volume-label
> +Set the volume label for the filesystem to
> +.IR volume-label .
> +The maximum length of the volume label is 16 bytes.
> +.TP
>  .BI "\-T " #
>  Set all files to the given UNIX timestamp. Reproducible builds requires setting
>  all to a specific one.
> diff --git a/mkfs/main.c b/mkfs/main.c
> index 594ecf9..08a4215 100644
> --- a/mkfs/main.c
> +++ b/mkfs/main.c
> @@ -84,6 +84,7 @@ static void usage(void)
>  	      " -zX[,Y]               X=compressor (Y=compression level, optional)\n"
>  	      " -C#                   specify the size of compress physical cluster in bytes\n"
>  	      " -EX[,...]             X=extended options\n"
> +	      " -L volume-label        set the volume label (max 16 bytes).\n"

Not aligned here.

>  	      " -T#                   set a fixed UNIX timestamp # to all files\n"
>  #ifdef HAVE_LIBUUID
>  	      " -UX                   use a given filesystem UUID\n"
> @@ -212,7 +213,7 @@ static int mkfs_parse_options_cfg(int argc, char *argv[])
>  	int opt, i;
>  	bool quiet = false;
>  
> -	while ((opt = getopt_long(argc, argv, "C:E:T:U:d:x:z:",
> +	while ((opt = getopt_long(argc, argv, "C:E:L:T:U:d:x:z:",
>  				  long_options, NULL)) != -1) {
>  		switch (opt) {
>  		case 'z':
> @@ -255,6 +256,15 @@ static int mkfs_parse_options_cfg(int argc, char *argv[])
>  			if (opt)
>  				return opt;
>  			break;
> +
> +		case 'L':
> +			if (optarg == NULL || strlen(optarg) > 16) {

					sizeof(sbi.volume_name);

> +				erofs_err("invalid volume label");
> +				return -EINVAL;
> +			}
> +			strncpy(sbi.volume_name, optarg, 16);

						sizeof(sbi.volume_name)?


Thanks,
Gao Xiang

> +			break;
> +
>  		case 'T':
>  			cfg.c_unix_timestamp = strtoull(optarg, &endptr, 0);
>  			if (cfg.c_unix_timestamp == -1 || *endptr != '\0') {
> @@ -483,6 +493,7 @@ int erofs_mkfs_update_super_block(struct erofs_buffer_head *bh,
>  	sb.blocks       = cpu_to_le32(*blocks);
>  	sb.root_nid     = cpu_to_le16(root_nid);
>  	memcpy(sb.uuid, sbi.uuid, sizeof(sb.uuid));
> +	memcpy(sb.volume_name, sbi.volume_name, sizeof(sb.volume_name));
>  
>  	if (erofs_sb_has_compr_cfgs())
>  		sb.u1.available_compr_algs = sbi.available_compr_algs;
> -- 
> 2.25.1
> 

  reply	other threads:[~2022-10-04 16:49 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-04 16:02 [PATCH] erofs-utils: mkfs: Add volume-name setting support Naoto Yamaguchi
2022-10-04 16:15 ` Gao Xiang
2022-10-04 16:25   ` Naoto Yamaguchi
2022-10-04 16:33     ` Gao Xiang
2022-10-04 16:43       ` Naoto Yamaguchi
2022-10-04 16:49         ` Gao Xiang [this message]
2022-10-04 17:01           ` [PATCH v3] " Naoto Yamaguchi
2022-10-04 17:04           ` [PATCH] " Naoto Yamaguchi
2022-10-04 17:54             ` Gao Xiang
2022-10-04 21:33               ` Naoto Yamaguchi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YzxkE6rN1KcZmF09@debian \
    --to=xiang@kernel.org \
    --cc=linux-erofs@lists.ozlabs.org \
    --cc=naoto.yamaguchi@aisin.co.jp \
    --cc=wata2ki@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox