Author: rmacklem
Date: Sun Dec  2 01:20:43 2012
New Revision: 243783
URL: http://svnweb.freebsd.org/changeset/base/243783

Log:
  Add a "-m" option to nfsstat, which dumps out the
  actual options used by all NFS mounts. Works for
  the new/default NFS client only.
  
  Reviewed by:  alfred
  MFC after:    2 weeks

Modified:
  head/usr.bin/nfsstat/nfsstat.c

Modified: head/usr.bin/nfsstat/nfsstat.c
==============================================================================
--- head/usr.bin/nfsstat/nfsstat.c      Sun Dec  2 01:16:04 2012        
(r243782)
+++ head/usr.bin/nfsstat/nfsstat.c      Sun Dec  2 01:20:43 2012        
(r243783)
@@ -107,14 +107,36 @@ main(int argc, char **argv)
        int ch;
        char *memf, *nlistf;
        char errbuf[_POSIX2_LINE_MAX];
+       int mntlen, i;
+       char buf[1024];
+       struct statfs *mntbuf;
+       struct nfscl_dumpmntopts dumpmntopts;
 
        interval = 0;
        memf = nlistf = NULL;
-       while ((ch = getopt(argc, argv, "cesWM:N:ow:z")) != -1)
+       while ((ch = getopt(argc, argv, "cesWM:mN:ow:z")) != -1)
                switch(ch) {
                case 'M':
                        memf = optarg;
                        break;
+               case 'm':
+                       /* Display mount options for NFS mount points. */
+                       mntlen = getmntinfo(&mntbuf, MNT_NOWAIT);
+                       for (i = 0; i < mntlen; i++) {
+                               if (strcmp(mntbuf->f_fstypename, "nfs") == 0) {
+                                       dumpmntopts.ndmnt_fname =
+                                           mntbuf->f_mntonname;
+                                       dumpmntopts.ndmnt_buf = buf;
+                                       dumpmntopts.ndmnt_blen = sizeof(buf);
+                                       if (nfssvc(NFSSVC_DUMPMNTOPTS,
+                                           &dumpmntopts) >= 0)
+                                               printf("%s on %s\n%s\n",
+                                                   mntbuf->f_mntfromname,
+                                                   mntbuf->f_mntonname, buf);
+                               }
+                               mntbuf++;
+                       }
+                       exit(0);
                case 'N':
                        nlistf = optarg;
                        break;
@@ -646,7 +668,7 @@ void
 usage(void)
 {
        (void)fprintf(stderr,
-           "usage: nfsstat [-ceoszW] [-M core] [-N system] [-w wait]\n");
+           "usage: nfsstat [-cemoszW] [-M core] [-N system] [-w wait]\n");
        exit(1);
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to