[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <B480E3DD-32ED-444E-88A8-A4B18921A49A@dilger.ca>
Date: Sat, 20 Sep 2025 12:53:58 -0600
From: Andreas Dilger <adilger@...ger.ca>
To: Ralph Siemsen <ralph.siemsen@...aro.org>
Cc: Ext4 Developers List <linux-ext4@...r.kernel.org>
Subject: Re: [PATCH v2 2/4] mke2fs: support multiple '-E' options
> On Sep 10, 2025, at 7:51 AM, Ralph Siemsen <ralph.siemsen@...aro.org> wrote:
>
> The '-E' option for specifying extended attributes can now be used
> multiple times. The existing support for multiple attributes encoded
> as comma-separated string is maintained for each '-E' option.
>
> Prior to this change, if multiple '-E' options were specified, then
> only the last one was used. Earlier ones were silently ignored.
>
> Signed-off-by: Ralph Siemsen <ralph.siemsen@...aro.org>
Reviewed-by: Andreas Dilger <adilger@...ger.ca>
> ---
> misc/mke2fs.8.in | 4 +++-
> misc/mke2fs.c | 16 ++++++++++++----
> 2 files changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/misc/mke2fs.8.in b/misc/mke2fs.8.in
> index 14bae326..99ecc64b 100644
> --- a/misc/mke2fs.8.in
> +++ b/misc/mke2fs.8.in
> @@ -268,7 +268,9 @@ Cause a kernel panic.
> .TP
> .BI \-E " extended-options"
> Set extended options for the file system. Extended options are comma
> -separated, and may take an argument using the equals ('=') sign. The
> +separated, and may take an argument using the equals ('=') sign. Multiple
> +.B \-E
> +options may also be used. The
> .B \-E
> option used to be
> .B \-R
> diff --git a/misc/mke2fs.c b/misc/mke2fs.c
> index 3a8ff5b1..a54f83ad 100644
> --- a/misc/mke2fs.c
> +++ b/misc/mke2fs.c
> @@ -1653,7 +1653,7 @@ static void PRS(int argc, char *argv[])
> int default_csum_seed = 0;
> errcode_t retval;
> char * oldpath = getenv("PATH");
> - char * extended_opts = 0;
> + struct str_list extended_opts;
> char * fs_type = 0;
> char * usage_types = 0;
> /*
> @@ -1751,6 +1751,13 @@ profile_error:
> journal_size = -1;
> }
>
> + retval = init_list(&extended_opts);
> + if (retval) {
> + com_err(program_name, retval, "%s",
> + _("in malloc for extended_opts"));
> + exit(1);
> + }
> +
> while ((c = getopt (argc, argv,
> "b:cd:e:g:i:jl:m:no:qr:s:t:vC:DE:FG:I:J:KL:M:N:O:R:ST:U:Vz:")) != EOF) {
> switch (c) {
> @@ -1796,7 +1803,7 @@ profile_error:
> _("'-R' is deprecated, use '-E' instead"));
> /* fallthrough */
> case 'E':
> - extended_opts = optarg;
> + push_string(&extended_opts, optarg);
> break;
> case 'e':
> if (strcmp(optarg, "continue") == 0)
> @@ -2615,8 +2622,9 @@ profile_error:
> free(tmp);
> }
>
> - if (extended_opts)
> - parse_extended_opts(&fs_param, extended_opts);
> + /* Get options from commandline */
> + for (cpp = extended_opts.list; *cpp; cpp++)
> + parse_extended_opts(&fs_param, *cpp);
>
> if (fs_param.s_rev_level == EXT2_GOOD_OLD_REV) {
> if (fs_features) {
>
> --
> 2.45.2.121.gc2b3f2b3cd
>
>
Cheers, Andreas
Download attachment "signature.asc" of type "application/pgp-signature" (874 bytes)
Powered by blists - more mailing lists