[PATCH] erofs-utils: mkfs: Add volume-name setting support

Naoto Yamaguchi wata2ki at gmail.com
Wed Oct 5 04:04:39 AEDT 2022


Hi Gao

Sorry I'm missing subject and commit message.
I inclement and fix commit message.

Thanks,
Naoto Yamaguchi.
a member of Automotive Grade Linux Instrument Cluster EG.

2022年10月5日(水) 1:49 Gao Xiang <xiang at kernel.org>:
>
> 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 at 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
> >


More information about the Linux-erofs mailing list