Hi Kurt, Kurt Mosiejczuk wrote on Mon, Mar 11, 2019 at 09:32:41AM -0400:
> As far as I can tell, no man page documents the fs_mntops form of the > mount_nfs(8) options for fstab(5). Most of us who use them either know > from some other documentation, reading the source, or just doing a > copy-paste from somwhere. > > I went through the source and wrote them down, and here is a first stab > at documenting them in mount_nfs(8). I like the general idea, but have lots of comments regarding specific details. > I can't really think of a better place to put this information than > mount_nfs(8), but welcome suggestions. I also welcome feedback on how > best to push this information into the man page. I can't think of a better place than mount_nfs(8) either. One aspect that i overlooked when we initially discussed this (because i didn't actually read the code back then, i only looked at it right now checking the details): the fstab(5) options can also be given via -o and vice versa, and that ought to be documented. Equivalence is guaranteed because mount(8) actually forks and execs mount_nfs(8), passing the data taken from fstab(5) via argv[]. So i suggest the following style: .It Fl 2 No or Fl o Cm nfsv2 Use the NFS Version 2 protocol. Regarding the command line options taking arguments (-agIRrtwx): It appears these can be specified as mount -o -t=... on the command line or as ... nfs ro,-t=... in fstab(5). According to my testing (and my reading of the code), the forms mount -o timeo=... ... nfs ro,timeo=... that you are documenting do *not* work. I suspect you confused the field names in the struct nfs_args in the source code with the option names to be used in -o/fstab(5). So, we have four classes of options: * no arguments, equivalent -o/fstab(5) option exists -2 = -o nfsv2 /* wrong name in your diff? */ -3 = -o nfsv3 /* wrong name in your diff? */ -b = -o bg -c = -o noconn -d = -o dumbtimer /* missing in your diff */ -i = -o intr -l = -o rdirplus /* wrong name in your diff? */ -s = -o soft -T = -o tcp -U = -o mntudp /* wrong name in your diff? */ * no arguments, can be specified with -o/fstab(5) only: -o resvport /* missing in your diff */ -o noac * takes an argument, no explicit -o equivalent -a arg = -o -a=arg /* wrong name in your diff */ -g arg = -o -g=arg /* wrong name in your diff */ -I arg = -o -I=arg /* wrong name in your diff */ -R arg = -o -R=arg /* wrong name in your diff */ -r arg = -o -r=arg /* wrong name in your diff */ -t arg = -o -t=arg /* wrong name in your diff */ -w arg = -o -w=arg /* wrong name in your diff */ -x arg = -o -x=arg /* wrong name in your diff */ * takes an argument, can be specified with -o/fstab(5) only: -o port=arg -o acdirmax=arg -o acdirmin=arg -o acregmax=arg -o acregmin=arg Below -o, it should probably be said that all other options described in mount_nfs(8) 1. can be passed to mount(8) like "mount -o -b,-t=timeout" or like "mount -o bg,-t=timeout" 2. and can be specified in fstab(5) like ... /mountpoint nfs options,-b,-t=timeout ... or like ... /mountpoint nfs options,bg,-t=timeout ... This is not intended as a suggestion for the wording, but only as an indication of the content that probably needs to be conveyed. > Index: mount_nfs.8 > =================================================================== > RCS file: /cvs/src/sbin/mount_nfs/mount_nfs.8,v > retrieving revision 1.39 > diff -u -p -r1.39 mount_nfs.8 > --- mount_nfs.8 6 Jun 2009 20:58:50 -0000 1.39 > +++ mount_nfs.8 10 Mar 2019 19:28:01 -0000 > @@ -66,27 +66,48 @@ It implements the mount protocol as desc > .%T "NFS: Network File System Version 3 Protocol Specification" , > Appendix I. > .Pp > -The options are as follows: > +The options are as follows. > +Many of them can be specified permanently in the > +.Fa fs_mntopts > +field of the > +.Xr fstab 5 > +configuration file for use with the one-argument form of > +.Xr mount 8 . Even though i suggested this wording, this change should probably be reverted, given the above analysis. I think you need to rework you diff. Yours, Ingo