aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2017-12-06 17:14:27 -0600
committerEric Sandeen <sandeen@redhat.com>2017-12-06 17:14:27 -0600
commitd145f69d6ce0445db0ad12666feab5ee51413469 (patch)
tree1b823e6f754b0dd33f632ce9a08a66894336e9e4
parent98d40922f775d6346746309cfd95403d6dfabe67 (diff)
downloadxfsprogs-dev-d145f69d6ce0445db0ad12666feab5ee51413469.tar.gz
mkfs: factor rt subopts parser
Signed-Off-By: Dave Chinner <dchinner@redhat.com> Reviewed-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
-rw-r--r--mkfs/xfs_mkfs.c55
1 files changed, 26 insertions, 29 deletions
diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
index 829660a348..296ddeefeb 100644
--- a/mkfs/xfs_mkfs.c
+++ b/mkfs/xfs_mkfs.c
@@ -1740,6 +1740,26 @@ rtdev_opts_parser(
char *value,
struct cli_params *cli)
{
+ switch (subopt) {
+ case R_EXTSIZE:
+ cli->rtextsize = getstr(value, &ropts, R_EXTSIZE);
+ break;
+ case R_FILE:
+ cli->xi->risfile = getnum(value, &ropts, R_FILE);
+ break;
+ case R_NAME:
+ case R_DEV:
+ cli->xi->rtname = getstr(value, &ropts, R_NAME);
+ break;
+ case R_SIZE:
+ cli->rtsize = getstr(value, &ropts, R_SIZE);
+ break;
+ case R_NOALIGN:
+ cli->sb_feat.nortalign = getnum(value, &ropts, R_NOALIGN);
+ break;
+ default:
+ return -EINVAL;
+ }
return 0;
}
@@ -2077,36 +2097,13 @@ main(
qflag = 1;
break;
case 'r':
- p = optarg;
- while (*p != '\0') {
- char **subopts = (char **)ropts.subopts;
- char *value;
+ parse_subopts(c, optarg, &cli);
- switch (getsubopt(&p, subopts, &value)) {
- case R_EXTSIZE:
- rtextsize = getstr(value, &ropts,
- R_EXTSIZE);
- break;
- case R_FILE:
- xi.risfile = getnum(value, &ropts,
- R_FILE);
- break;
- case R_NAME:
- case R_DEV:
- xi.rtname = getstr(value, &ropts,
- R_NAME);
- break;
- case R_SIZE:
- rtsize = getstr(value, &ropts, R_SIZE);
- break;
- case R_NOALIGN:
- norsflag = getnum(value, &ropts,
- R_NOALIGN);
- break;
- default:
- unknown('r', value);
- }
- }
+ /* temp don't break code */
+ rtextsize = cli.rtextsize;
+ rtsize = cli.rtsize;
+ norsflag = cli.sb_feat.nortalign;
+ /* end temp don't break code */
break;
case 's':
p = optarg;