From: "Luke T. Shumaker" <[email protected]>

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 <[email protected]>
---
 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 <[email protected]>.
-- 
2.42.0

Reply via email to