extended ramfs (-abc)

This commit is contained in:
aiju 2011-05-08 23:00:11 +00:00
parent 2f3b4175f6
commit 28859a83f4

View file

@ -157,9 +157,11 @@ main(int argc, char *argv[])
int p[2]; int p[2];
int fd; int fd;
int stdio = 0; int stdio = 0;
int mountflags;
service = "ramfs"; service = "ramfs";
defmnt = "/tmp"; defmnt = "/tmp";
mountflags = 0;
ARGBEGIN{ ARGBEGIN{
case 'i': case 'i':
defmnt = 0; defmnt = 0;
@ -186,9 +188,20 @@ main(int argc, char *argv[])
defmnt = 0; defmnt = 0;
service = EARGF(usage()); service = EARGF(usage());
break; break;
case 'b':
mountflags |= MBEFORE;
break;
case 'c':
mountflags |= MCREATE;
break;
case 'a':
mountflags |= MAFTER;
break;
default: default:
usage(); usage();
}ARGEND }ARGEND
if(mountflags == 0)
mountflags = MREPL | MCREATE;
if(pipe(p) < 0) if(pipe(p) < 0)
error("pipe failed"); error("pipe failed");
@ -239,7 +252,7 @@ main(int argc, char *argv[])
break; break;
default: default:
close(p[0]); /* don't deadlock if child fails */ close(p[0]); /* don't deadlock if child fails */
if(defmnt && mount(p[1], -1, defmnt, MREPL|MCREATE, "") < 0) if(defmnt && mount(p[1], -1, defmnt, mountflags, "") < 0)
error("mount failed"); error("mount failed");
} }
exits(0); exits(0);
@ -902,6 +915,6 @@ estrdup(char *q)
void void
usage(void) usage(void)
{ {
fprint(2, "usage: %s [-Dipsu] [-m mountpoint] [-S srvname]\n", argv0); fprint(2, "usage: %s [-Dipsubac] [-m mountpoint] [-S srvname]\n", argv0);
exits("usage"); exits("usage");
} }