From: Dave Chinner <david@fromorbit.com>
To: linux-xfs@vger.kernel.org
Subject: [PATCH v3 0/5] mkfs: Configuration file defined options
Date: Wed, 28 Oct 2020 07:52:53 +1100 [thread overview]
Message-ID: <20201027205258.2824424-1-david@fromorbit.com> (raw)
Version 3:
- really do "-c file=xxx" > "-c options=xxx" everywhere
- update libinih parser error handling to be more robust
- ini_name -> ini_section and comment updates
- man page layout and grammar improvements
- Updated Darrick's old config file fstests to exercise the new
code.
Version 2:
- "-c file=xxx" > "-c options=xxx"
- split out constification into new patch
- removed debug output
- fixed some comments
- added man page stuff
Hi Folks,
Because needing config files for mkfs came up yet again in
discussion, here is a simple implementation of INI format config
files. These config files behave identically to options specified on
the command line - the do not change defaults, they do not override
CLI options, they are not overridden by cli options.
Example:
$ echo -e "[metadata]\ncrc = 0" > foo
$ mkfs/mkfs.xfs -N -c options=foo -d file=1,size=100m blah
Parameters parsed from config file foo successfully
meta-data=blah isize=256 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0, sparse=0, rmapbt=0
= reflink=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
$
And there's a V4 filesystem as specified by the option defined
in the config file. If we do:
$ mkfs/mkfs.xfs -N -c options=foo -m crc=1 -d file=1,size=100m blah
-m crc option respecified
Usage: mkfs.xfs
.....
$
You can see it errors out because the CRC option was specified in
both the config file and on the CLI.
There's lots of stuff we can do to make the conflict and respec
error messages better, but that doesn't change the basic
functionality of config file based mkfs options. To allow for future
changes to the way we want to apply config files, I created a
full option subtype for config files. That means we can add another
option to say "apply config file as default values rather than as
options" if we decide that is functionality that we want to support.
However, policy decisions like that are completely separate to the
mechanism, so these patches don't try to address desires to ship
"tuned" configs, system wide option files, shipping distro specific
defaults in config files, etc. This is purely a mechanism to allow
users to specify options via files instead of on the CLI. No more,
no less.
Git branch can be found here:
git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsprogs-dev.git mkfs-config-file
Cheers,
Dave.
Dave Chinner (5):
build: add support for libinih for mkfs
mkfs: add initial ini format config file parsing support
mkfs: constify various strings
mkfs: hook up suboption parsing to ini files
mkfs: document config files in mkfs.xfs(8)
configure.ac | 3 +
doc/INSTALL | 5 +
include/builddefs.in | 1 +
include/linux.h | 2 +-
m4/package_inih.m4 | 20 ++++
man/man8/mkfs.xfs.8 | 113 +++++++++++++++++++--
mkfs/Makefile | 2 +-
mkfs/xfs_mkfs.c | 231 ++++++++++++++++++++++++++++++++++++++-----
8 files changed, 343 insertions(+), 34 deletions(-)
create mode 100644 m4/package_inih.m4
--
2.28.0
next reply other threads:[~2020-10-27 20:53 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-27 20:52 Dave Chinner [this message]
2020-10-27 20:52 ` [PATCH v3 1/5] build: add support for libinih for mkfs Dave Chinner
2020-10-27 20:52 ` [PATCH v3 2/5] mkfs: add initial ini format config file parsing support Dave Chinner
2020-10-29 21:07 ` Darrick J. Wong
2020-10-27 20:52 ` [PATCH v3 3/5] mkfs: constify various strings Dave Chinner
2020-10-27 20:52 ` [PATCH v3 4/5] mkfs: hook up suboption parsing to ini files Dave Chinner
2020-10-29 21:18 ` Darrick J. Wong
2020-10-27 20:52 ` [PATCH v3 5/5] mkfs: document config files in mkfs.xfs(8) Dave Chinner
2020-10-29 21:19 ` Darrick J. Wong
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=20201027205258.2824424-1-david@fromorbit.com \
--to=david@fromorbit.com \
--cc=linux-xfs@vger.kernel.org \
/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