]> git.lizzy.rs Git - plan9front.git/commitdiff
exportfs, oexportfs, iostats: make -d log to stderr
authoramavect <amavect@gmail.com>
Wed, 18 Aug 2021 17:51:40 +0000 (17:51 +0000)
committeramavect <amavect@gmail.com>
Wed, 18 Aug 2021 17:51:40 +0000 (17:51 +0000)
exportfs -d logs 9p traffic to /tmp/exportdb.
-f allows writing to a different file.
exportfs silently continues if it doesn't have
permissions to create or write to /tmp/exportdb.
These are poor behaviors.

A better default is to write to stderr, since it
is 9P debug info that is better immediately printed,
and not user info that is better handled by syslog().
As a result, -f is obsolete and thus removed.
Redirect responsibility is now on rc.
As a side effect, rc will fail if it doesn't
have permissions to write.

exportfs(4) is updated to reflect all changes
and with a better Synopsis.

oexportfs is changed to match exportfs.
oexportfs(4) is updated to reflect all changes.
The Synopsis is not changed due to the number of flags.

Removed -f from iostats.
iostats(4) is updated to reflect all changes.
---

sys/man/4/exportfs
sys/man/4/iostats
sys/man/4/oexportfs
sys/src/cmd/exportfs/exportfs.c
sys/src/cmd/exportfs/exportfs.h
sys/src/cmd/exportfs/exportsrv.c
sys/src/cmd/exportfs/io.c
sys/src/cmd/exportfs/oexportfs.c
sys/src/cmd/exportfs/pattern.c
sys/src/cmd/iostats.c

index b6108c1ab0ab8a2d3818e6b072ef3c144ce051a0..61f3cd965068fce784f56aabf5ab0997868d2994 100644 (file)
@@ -4,7 +4,23 @@ exportfs, srvfs \- file server plumbing
 .SH SYNOPSIS
 .B exportfs
 [
-.I options
+.B -dsR
+]
+[
+.B -m
+.I msize
+]
+[
+.B -r
+.I root
+]
+[
+.B -P
+.I patternfile
+]
+[
+.B -S
+.I srvfile
 ]
 .PP
 .B srvfs
@@ -39,11 +55,8 @@ into a local file tree.
 .PP
 The options are:
 .TP
-.B -d -f \fIdbgfile
-Log all 9P traffic to
-.I dbgfile
-(default
-.BR /tmp/exportdb ).
+.B -d
+Log all 9P traffic to standard error.
 .TP
 .B -P \fIpatternfile
 Restrict the set of exported files.
index 6f7eefaf570db2d41271b3bdbe396a2d30779a52..404752cbfc0c80357b753de4ae1deffcfdacba29 100644 (file)
@@ -7,9 +7,6 @@ iostats \- file system to measure I/O
 .B -d
 ] [
 .B -C
-] [
-.B -f
-.I dbfile
 ]
 .I cmd
 [
@@ -17,7 +14,7 @@ iostats \- file system to measure I/O
 ]
 .SH DESCRIPTION
 .I Iostats
-is a user-level 9p filter that interposes itself between a program
+is a user-level 9P filter that interposes itself between a program
 and the regular file server, which
 allows it to gather statistics of file system
 use at the level of the Plan 9 file system protocol, 9P.
@@ -51,11 +48,8 @@ by the program in terms of opens, reads and writes.
 .PP
 If the
 .B -d
-flag is present, a debugging log including all traffic
-is written to
-.I dbfile
-(default
-.BR iostats.out ).
+flag is present, a debugging log including all 9P traffic
+is written to standard error.
 .PP
 The
 .B -C
@@ -73,7 +67,7 @@ iostats ls
 Start a new shell, displaying all 9P traffic caused by the shell or its children:
 .IP
 .EX
-iostats -df /fd/1 rc
+iostats -d rc
 .EE
 .SH SOURCE
 .B /sys/src/cmd/iostats.c
index 180ad204f4cf87d5070f8f0b7c6899e0af3a8d45..64f156c09b002941ae7037f3fbe6ddc814e192c6 100644 (file)
@@ -26,11 +26,8 @@ services.
 .PP
 The options are:
 .TP
-.B -d -f \fIdbgfile
-Log all 9P traffic to
-.I dbgfile
-(default
-.BR /tmp/exportdb ).
+.B -d
+Log all 9P traffic to standard error.
 .TP
 .B -P \fIpatternfile
 Restrict the set of exported files.
index b17cec499a83136420d1bd9426331db6253bdc90..86680e1f602016dc7d049a76cc283573b4359816 100644 (file)
@@ -10,18 +10,16 @@ int readonly;
 void
 usage(void)
 {
-       fprint(2, "usage: %s [-dsR] [-f dbgfile] [-m msize] [-r root] "
-               "[-S srvfile] [-P exclusion-file]\n", argv0);
+       fprint(2, "usage: %s [-dsR] [-m msize] [-r root] "
+               "[-P patternfile] [-S srvfile]\n", argv0);
        fatal("usage");
 }
 
 void
 main(int argc, char **argv)
 {
-       char *dbfile, *srv, *srvfdfile;
-       int n;
+       char *srv, *srvfdfile;
 
-       dbfile = "/tmp/exportdb";
        srv = nil;
        srvfd = -1;
        srvfdfile = nil;
@@ -31,10 +29,6 @@ main(int argc, char **argv)
                dbg++;
                break;
 
-       case 'f':
-               dbfile = EARGF(usage());
-               break;
-
        case 'm':
                messagesize = strtoul(EARGF(usage()), nil, 0);
                break;
@@ -82,13 +76,7 @@ main(int argc, char **argv)
 
        exclusions();
 
-       if(dbg) {
-               n = create(dbfile, OWRITE|OTRUNC, 0666);
-               dup(n, DFD);
-               close(n);
-       }
-
-       DEBUG(DFD, "exportfs: started\n");
+       DEBUG(2, "exportfs: started\n");
 
        rfork(RFNOTEG|RFREND);
 
@@ -106,13 +94,13 @@ main(int argc, char **argv)
                        char ebuf[ERRMAX];
                        ebuf[0] = '\0';
                        errstr(ebuf, sizeof ebuf);
-                       DEBUG(DFD, "chdir(\"%s\"): %s\n", srv, ebuf);
+                       DEBUG(2, "chdir(\"%s\"): %s\n", srv, ebuf);
                        mounterror(ebuf);
                }
-               DEBUG(DFD, "invoked as server for %s", srv);
+               DEBUG(2, "invoked as server for %s", srv);
        }
 
-       DEBUG(DFD, "\niniting root\n");
+       DEBUG(2, "\niniting root\n");
        initroot();
        io();
 }
index 344304b7cf82d3e6ede8235f438f1f920f41a12a..6723620cde91994bb4f9aeb1bdb5af2e4cec99e6 100644 (file)
@@ -3,7 +3,6 @@
  */
 
 #define DEBUG          if(!dbg){}else fprint
-#define DFD            9
 #define fidhash(s)     fhash[s%FHASHSIZE]
 
 typedef struct Fsrpc Fsrpc;
index b7ddd64b575139cb6c6e20ac9e3ed204d7efc155..3bd9e3aeb3c679359e28fc03628324b81374ee4d 100644 (file)
@@ -65,7 +65,7 @@ Xflush(Fsrpc *t)
                w = m->busy;
                if(w != nil && w->work.tag == t->work.oldtag) {
                        w->flushtag = t->work.tag;
-                       DEBUG(DFD, "\tset flushtag %d\n", t->work.tag);
+                       DEBUG(2, "\tset flushtag %d\n", t->work.tag);
                        postnote(PNPROC, m->pid, "flush");
                        unlock(m);
                        putsbuf(t);
@@ -75,7 +75,7 @@ Xflush(Fsrpc *t)
        }
 
        reply(&t->work, &rhdr, 0);
-       DEBUG(DFD, "\tflush reply\n");
+       DEBUG(2, "\tflush reply\n");
        putsbuf(t);
 }
 
@@ -359,7 +359,7 @@ Xremove(Fsrpc *t)
        }
 
        path = makepath(f->f, "");
-       DEBUG(DFD, "\tremove: %s\n", path);
+       DEBUG(2, "\tremove: %s\n", path);
        if(remove(path) < 0) {
                free(path);
                errstr(err, sizeof err);
@@ -518,7 +518,7 @@ blockingslave(Proc *m)
                if(p == nil)            /* Swept */
                        break;
 
-               DEBUG(DFD, "\tslave: %d %F\n", m->pid, &p->work);
+               DEBUG(2, "\tslave: %d %F\n", m->pid, &p->work);
                if(p->flushtag != NOTAG)
                        goto flushme;
 
@@ -629,7 +629,7 @@ slaveopen(Fsrpc *p)
        }
        
        path = makepath(f->f, "");
-       DEBUG(DFD, "\topen: %s %d\n", path, work->mode);
+       DEBUG(2, "\topen: %s %d\n", path, work->mode);
        f->fid = open(path, work->mode);
        free(path);
        if(f->fid < 0 || (d = dirfstat(f->fid)) == nil) {
@@ -646,7 +646,7 @@ slaveopen(Fsrpc *p)
                        goto Error;
        }
 
-       DEBUG(DFD, "\topen: fd %d\n", f->fid);
+       DEBUG(2, "\topen: fd %d\n", f->fid);
        f->mode = work->mode;
        f->offset = 0;
        rhdr.iounit = getiounit(f->fid);
@@ -688,7 +688,7 @@ slaveread(Fsrpc *p)
                reply(work, &rhdr, err);
                return;
        }
-       DEBUG(DFD, "\tread: fd=%d %d bytes\n", f->fid, r);
+       DEBUG(2, "\tread: fd=%d %d bytes\n", f->fid, r);
 
        rhdr.data = data;
        rhdr.count = r;
@@ -720,7 +720,7 @@ slavewrite(Fsrpc *p)
                return;
        }
 
-       DEBUG(DFD, "\twrite: %d bytes fd=%d\n", n, f->fid);
+       DEBUG(2, "\twrite: %d bytes fd=%d\n", n, f->fid);
 
        rhdr.count = n;
        reply(work, &rhdr, 0);
index ad1d7154b782d596510db15e4e79db1e76b3cbdd..2309168a84f5575b8ae8efc51e44a8064e2c623c 100644 (file)
@@ -49,7 +49,7 @@ io(void)
                if(convM2S(r->buf, n, &r->work) != n)
                        fatal("convM2S format error");
 
-               DEBUG(DFD, "%F\n", &r->work);
+               DEBUG(2, "%F\n", &r->work);
                (fcalls[r->work.type])(r);
        }
 }
@@ -69,7 +69,7 @@ reply(Fcall *r, Fcall *t, char *err)
        else 
                t->type = r->type + 1;
 
-       DEBUG(DFD, "\t%F\n", t);
+       DEBUG(2, "\t%F\n", t);
 
        data = malloc(messagesize);     /* not mallocz; no need to clear */
        if(data == nil)
@@ -224,7 +224,7 @@ freefile(File *f)
 
        while(--f->ref == 0){
                freecnt++;
-               DEBUG(DFD, "free %s\n", f->name);
+               DEBUG(2, "free %s\n", f->name);
                /* delete from parent */
                parent = f->parent;
                if(parent->child == f)
@@ -250,7 +250,7 @@ file(File *parent, char *name)
        char *path;
        File *f;
 
-       DEBUG(DFD, "\tfile: 0x%p %s name %s\n", parent, parent->name, name);
+       DEBUG(2, "\tfile: 0x%p %s name %s\n", parent, parent->name, name);
 
        path = makepath(parent, name);
        if(patternfile != nil && excludefile(path)){
@@ -429,17 +429,17 @@ uniqueqid(Dir *d)
        }
        path = d->qid.path;
        while(qidexists(path)){
-               DEBUG(DFD, "collision on %s\n", d->name);
+               DEBUG(2, "collision on %s\n", d->name);
                /* collision: find a new one */
                ncollision++;
                path &= QIDPATH;
                ++newqid;
                if(newqid >= (1<<16)){
-                       DEBUG(DFD, "collision wraparound\n");
+                       DEBUG(2, "collision wraparound\n");
                        newqid = 1;
                }
                path |= newqid<<48;
-               DEBUG(DFD, "assign qid %.16llux\n", path);
+               DEBUG(2, "assign qid %.16llux\n", path);
        }
        qidcnt++;
        q = emallocz(sizeof(Qidtab));
@@ -472,7 +472,7 @@ fatal(char *s, ...)
                postnote(PNPROC, m->pid, "kill");
 
        if(s != nil) {
-               DEBUG(DFD, "%s\n", buf);
+               DEBUG(2, "%s\n", buf);
                sysfatal("%s", buf);    /* caution: buf could contain '%' */
        } else
                exits(nil);
index c6683a1745170530bbb594473d92858282991d77..105c304473729c1a72834cceea856c361500d8e1 100644 (file)
@@ -59,7 +59,7 @@ filter(int fd, char *cmd, char *host)
                strecpy(strrchr(addr, '!'), addr+sizeof(addr), s);
        }
 
-       DEBUG(DFD, "filter: %s\n", addr);
+       DEBUG(2, "filter: %s\n", addr);
 
        snprint(buf, sizeof(buf), "%s", cmd);
        argc = tokenize(buf, argv, nelem(argv)-3);
@@ -108,7 +108,7 @@ mksecret(char *t, uchar *f)
 void
 usage(void)
 {
-       fprint(2, "usage: %s [-adnsR] [-f dbgfile] [-m msize] [-r root] "
+       fprint(2, "usage: %s [-adnsR] [-m msize] [-r root] "
                "[-S srvfile] [-e 'crypt hash'] [-P exclusion-file] "
                "[-A announce-string] [-B address]\n", argv0);
        fatal("usage");
@@ -118,12 +118,11 @@ void
 main(int argc, char **argv)
 {
        char buf[ERRMAX], ebuf[ERRMAX], initial[4], *ini, *srvfdfile;
-       char *dbfile, *srv, *na, *nsfile, *keyspec;
+       char *srv, *na, *nsfile, *keyspec;
        int doauth, n, fd;
        AuthInfo *ai;
        Fsrpc *r;
 
-       dbfile = "/tmp/exportdb";
        srv = nil;
        srvfd = -1;
        srvfdfile = nil;
@@ -148,10 +147,6 @@ main(int argc, char **argv)
                        ealgs = nil;
                break;
 
-       case 'f':
-               dbfile = EARGF(usage());
-               break;
-
        case 'k':
                keyspec = EARGF(usage());
                break;
@@ -254,18 +249,12 @@ main(int argc, char **argv)
 
        exclusions();
 
-       if(dbg) {
-               n = create(dbfile, OWRITE|OTRUNC, 0666);
-               dup(n, DFD);
-               close(n);
-       }
-
        if(srvfd >= 0 && srv != nil){
                fprint(2, "%s: -S cannot be used with -r or -s\n", argv0);
                usage();
        }
 
-       DEBUG(DFD, "%s: started\n", argv0);
+       DEBUG(2, "%s: started\n", argv0);
 
        rfork(RFNOTEG|RFREND);
 
@@ -289,10 +278,10 @@ main(int argc, char **argv)
                if(chdir(srv) < 0) {
                        ebuf[0] = '\0';
                        errstr(ebuf, sizeof ebuf);
-                       DEBUG(DFD, "chdir(\"%s\"): %s\n", srv, ebuf);
+                       DEBUG(2, "chdir(\"%s\"): %s\n", srv, ebuf);
                        mounterror(ebuf);
                }
-               DEBUG(DFD, "invoked as server for %s", srv);
+               DEBUG(2, "invoked as server for %s", srv);
                strncpy(buf, srv, sizeof buf);
        }
        else {
@@ -301,22 +290,22 @@ main(int argc, char **argv)
                if(n < 0) {
                        errstr(buf, sizeof buf);
                        fprint(0, "read(0): %s\n", buf);
-                       DEBUG(DFD, "read(0): %s\n", buf);
+                       DEBUG(2, "read(0): %s\n", buf);
                        exits(buf);
                }
                buf[n] = 0;
                if(chdir(buf) < 0) {
                        errstr(ebuf, sizeof ebuf);
                        fprint(0, "chdir(%d:\"%s\"): %s\n", n, buf, ebuf);
-                       DEBUG(DFD, "chdir(%d:\"%s\"): %s\n", n, buf, ebuf);
+                       DEBUG(2, "chdir(%d:\"%s\"): %s\n", n, buf, ebuf);
                        exits(ebuf);
                }
        }
 
-       DEBUG(DFD, "\niniting root\n");
+       DEBUG(2, "\niniting root\n");
        initroot();
 
-       DEBUG(DFD, "%s: %s\n", argv0, buf);
+       DEBUG(2, "%s: %s\n", argv0, buf);
 
        if(srv == nil && srvfd == -1 && write(0, "OK", 2) != 2)
                fatal("open ack write");
@@ -436,7 +425,7 @@ main(int argc, char **argv)
 
                if(convM2S(r->buf, n, &r->work) != n)
                        fatal("convM2S format error");
-               DEBUG(DFD, "%F\n", &r->work);
+               DEBUG(2, "%F\n", &r->work);
                (fcalls[r->work.type])(r);
        }
        io();
index 4dfed5bca67855914709f67cef963c9cc3ea8a0d..f014a981243fbf724bb44c2e8a8f35b3d3162d9c 100644 (file)
@@ -42,7 +42,7 @@ exclusions(void)
                                if(include == nil)
                                        fatal("out of memory");
                        }
-                       DEBUG(DFD, "\tinclude %s\n", line+2);
+                       DEBUG(2, "\tinclude %s\n", line+2);
                        include[ni] = regcomp(line+2);
                        include[++ni] = nil;
                        break;
@@ -53,12 +53,12 @@ exclusions(void)
                                if(exclude == nil)
                                        fatal("out of memory");
                        }
-                       DEBUG(DFD, "\texclude %s\n", line+2);
+                       DEBUG(2, "\texclude %s\n", line+2);
                        exclude[ne] = regcomp(line+2);
                        exclude[++ne] = nil;
                        break;
                default:
-                       DEBUG(DFD, "ignoring pattern %s\n", line);
+                       DEBUG(2, "ignoring pattern %s\n", line);
                        break;
                }
        }
@@ -76,16 +76,16 @@ excludefile(char *path)
        else
                p = path+1;
 
-       DEBUG(DFD, "checking %s\n", p);
+       DEBUG(2, "checking %s\n", p);
        for(re = include; *re != nil; re++){
                if(regexec(*re, p, nil, 0) != 1){
-                       DEBUG(DFD, "excluded+ %s\n", p);
+                       DEBUG(2, "excluded+ %s\n", p);
                        return -1;
                }
        }
        for(re = exclude; *re != nil; re++){
                if(regexec(*re, p, nil, 0) == 1){
-                       DEBUG(DFD, "excluded- %s\n", p);
+                       DEBUG(2, "excluded- %s\n", p);
                        return -1;
                }
        }
@@ -98,7 +98,7 @@ preaddir(Fid *f, uchar *data, int n, vlong offset)
        int r = 0, m;
        Dir *d;
 
-       DEBUG(DFD, "\tpreaddir n=%d wo=%lld fo=%lld\n", n, offset, f->offset);
+       DEBUG(2, "\tpreaddir n=%d wo=%lld fo=%lld\n", n, offset, f->offset);
        if(offset == 0 && f->offset != 0){
                if(seek(f->fid, 0, 0) != 0)
                        return -1;
@@ -128,9 +128,9 @@ preaddir(Fid *f, uchar *data, int n, vlong offset)
                        free(p);
                }
                m = convD2M(d, data, n);
-               DEBUG(DFD, "\t\tconvD2M %d\n", m);
+               DEBUG(2, "\t\tconvD2M %d\n", m);
                if(m <= BIT16SZ){
-                       DEBUG(DFD, "\t\t\tneeded %d\n", GBIT16(data));
+                       DEBUG(2, "\t\t\tneeded %d\n", GBIT16(data));
                        /* not enough room for full entry; leave for next time */
                        f->cdir--;
                        return r;
index 421f531a90fe7d5bc353a45ce37fac6babd33c31..cd32239ff72a622aeec7250317c1afcecfa98d6f 100644 (file)
@@ -6,7 +6,6 @@
 #include <auth.h>
 #include <fcall.h>
 
-#define DEBUGFILE      "iostats.out"
 #define DONESTR                "done"
 
 enum{
@@ -250,7 +249,7 @@ rio(Fcall *fin, Fcall *fout)
 void
 usage(void)
 {
-       fprint(2, "usage: iostats [-dC] [-f debugfile] cmds [args ...]\n");
+       fprint(2, "usage: iostats [-dC] cmds [args ...]\n");
        exits("usage");
 }
 
@@ -259,7 +258,6 @@ main(int argc, char **argv)
 {
        Rpc *rpc;
        ulong ttime;
-       char *dbfile;
        char buf[64*1024];
        float brpsec, bwpsec, bppsec;
        int cpid, fspid, expid, rspid, dbg, n, mflag;
@@ -270,15 +268,11 @@ main(int argc, char **argv)
 
        dbg = 0;
        mflag = MREPL;
-       dbfile = DEBUGFILE;
 
        ARGBEGIN{
        case 'd':
                dbg++;
                break;
-       case 'f':
-               dbfile = ARGF();
-               break;
        case 'C':
                mflag |= MCACHE;
                break;
@@ -286,8 +280,6 @@ main(int argc, char **argv)
                usage();
        }ARGEND
 
-       USED(dbfile);
-
        if(argc == 0)
                usage();
 
@@ -359,7 +351,7 @@ main(int argc, char **argv)
                close(efd[1]);
                close(pfd[1]);
                if(dbg){
-                       execl("/bin/exportfs", "exportfs", "-df", dbfile, "-r", "/", nil);
+                       execl("/bin/exportfs", "exportfs", "-d", "-r", "/", nil);
                } else {
                        execl("/bin/exportfs", "exportfs", "-r", "/", nil);
                }