--- trunk/mkinitrd-magellan/klibc/usr/utils/mount_main.c 2009/04/24 18:09:28 814 +++ trunk/mkinitrd-magellan/klibc/usr/utils/mount_main.c 2009/04/24 18:32:46 815 @@ -22,7 +22,7 @@ int error = 0; while ((s = strsep(&type, ",")) != NULL) { - retry: +retry: if (mount(dev, dir, s, rwflag, data) == -1) { error = errno; /* @@ -42,8 +42,10 @@ rwflag |= MS_RDONLY; goto retry; } - break; + } else { + error = 0; } + break; } if (error) { @@ -64,10 +66,13 @@ rwflag = MS_VERBOSE; do { - c = getopt(argc, argv, "o:rt:w"); + c = getopt(argc, argv, "no:rt:wfi"); if (c == EOF) break; switch (c) { + case 'n': + /* no mtab writing */ + break; case 'o': rwflag = parse_mount_options(optarg, rwflag, &extra); break; @@ -80,6 +85,12 @@ case 'w': rwflag &= ~MS_RDONLY; break; + case 'f': + /* we can't edit /etc/mtab yet anyway; exit */ + exit(0); + case 'i': + /* ignore for now; no support for mount helpers */ + break; case '?': fprintf(stderr, "%s: invalid option -%c\n", progname, optopt); @@ -95,8 +106,8 @@ type = "none"; if (optind + 2 != argc || type == NULL) { - fprintf(stderr, "Usage: %s [-r] [-w] [-o options] [-t type] " - "device directory\n", progname); + fprintf(stderr, "Usage: %s [-r] [-w] [-o options] [-t type] [-f] [-i] " + "[-n] device directory\n", progname); exit(1); }