[PATCH 3/3] erofs-utils: fsck: Add -a, -A, and -y flags
Luke T. Shumaker
lukeshu at lukeshu.com
Fri Nov 3 06:31:22 AEDT 2023
From: "Luke T. Shumaker" <lukeshu at umorpha.io>
Other fsck.${filesystem} commands generally take -a or -p and
sometimes -A to automatically repair a filesystem, and -y to either
repair agree to all prompts about repairing.
For example:
- fsck.ext{2,3,4} takes -a or -p to repair, and -y to agree
- fsck.xfs takes -y to repair; and -a, -A, or -p to silence a warning
about repairing
- fsck.btrfs takes -a, -A, -p, or -y to silence a warning about repairing
So, like fsck.btrfs, we should accept these flags as no-ops, for
compatibility with programs that expect to be able to pass these to
fsck. In particular, Arch Linux's mkinitcpio (when fsck is enabled)
unconditionally passes -a to `fsck`.
Naturally, I'd have liked to include '-p' in the list, but it already
does something different for fsck.erofs. I'd like to call out the
fsck.ext4 manual, which says:
-a This option does the same thing as the -p option. It is
provided for backwards compatibility only; it is
suggested that people use -p option whenever possible.
Signed-off-by: Luke T. Shumaker <lukeshu at umorpha.io>
---
fsck/main.c | 8 +++++++-
man/fsck.erofs.1 | 4 ++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/fsck/main.c b/fsck/main.c
index aeea892..26cd131 100644
--- a/fsck/main.c
+++ b/fsck/main.c
@@ -98,6 +98,8 @@ static void usage(int argc, char **argv)
" --extract[=X] check if all files are well encoded, optionally\n"
" extract to X\n"
"\n"
+ " -a, -A, -y no-op, for compatibility with fsck of other filesystems\n"
+ "\n"
"Extraction options (--extract=X is required):\n"
" --force allow extracting to root\n"
" --overwrite overwrite files that already exist\n"
@@ -124,7 +126,7 @@ static int erofsfsck_parse_options_cfg(int argc, char **argv)
int opt, ret;
bool has_opt_preserve = false;
- while ((opt = getopt_long(argc, argv, "Vd:ph",
+ while ((opt = getopt_long(argc, argv, "Vd:phaAy",
long_options, NULL)) != -1) {
switch (opt) {
case 'V':
@@ -144,6 +146,10 @@ static int erofsfsck_parse_options_cfg(int argc, char **argv)
case 'h':
usage(argc, argv);
exit(0);
+ case 'a':
+ case 'A':
+ case 'y':
+ break;
case 2:
fsckcfg.check_decomp = true;
if (optarg) {
diff --git a/man/fsck.erofs.1 b/man/fsck.erofs.1
index a226995..c94fff9 100644
--- a/man/fsck.erofs.1
+++ b/man/fsck.erofs.1
@@ -34,6 +34,10 @@ so it might take too much time depending on the image.
.TP
\fB\-h\fR, \fB\-\-help\fR
Display help string and exit.
+.TP
+\fB\-a\fR, \fB\-A\fR, \fB-y\R
+These options do nothing at all; they are provided only for compatibility with
+the fsck programs of other filesystems.
.SH AUTHOR
This version of \fBfsck.erofs\fR is written by
Daeho Jeong <daehojeong at google.com>.
--
2.42.0
More information about the Linux-erofs
mailing list