On 2/24/21 3:30 PM, J. Bruce Fields wrote: > On Fri, Feb 19, 2021 at 03:08:08PM -0500, Steve Dickson wrote: >> nfsv4.exportd is a daemon that will listen for only v4 mount upcalls. >> The idea is to allow distros to build a v4 only package >> which will have a much smaller footprint than the >> entire nfs-utils package. >> >> exportd uses no RPC code, which means none of the >> code or arguments that deal with v3 was ported, >> this again, makes the footprint much smaller. > > How much smaller? Will a bit smaller... but a number of daemons like nfsd[cld,clddb,cldnts] need to also come a long. > >> The following options were ported: >> * multiple threads >> * state-directory-path option >> * junction support (not tested) >> >> The rest of the mountd options were v3 only options. > > There's also --manage-gids. Right... a patch was posted... > > If you want nfsv4-only at runtime, you can always run rpc.mountd with > -N2 -N3 to turn off the MOUNT protocol support. The end game is not to run mountd at all... > > If you don't even want v2/f3 code on your system, then you may have to > do something like this, but why is that important? Container friendly... Not bring in all the extra daemons v3 needs is a good thing... esp rpcbind. steved. > > --b. > >> >> V2: >> * Added two systemd services: nfsv4-exportd and nfsv4-server >> * nfsv4-server starts rpc.nfsd -N 3, so nfs.conf mod not needed. >> >> V3: Changed the name from exportd to nfsv4.exportd >> >> V4: Added compile flag that will compile in the NFSv4 only server >> >> Steve Dickson (7): >> exportd: the initial shell of the v4 export support >> exportd: Moved cache upcalls routines into libexport.a >> exportd: multiple threads >> exportd/exportfs: Add the state-directory-path option >> exportd: Enabled junction support >> exportd: systemd unit files >> exportd: Added config variable to compile in the NFSv4 only server. >> >> .gitignore | 1 + >> configure.ac | 14 ++ >> nfs.conf | 4 + >> support/export/Makefile.am | 3 +- >> {utils/mountd => support/export}/auth.c | 4 +- >> {utils/mountd => support/export}/cache.c | 46 +++- >> support/export/export.h | 34 +++ >> {utils/mountd => support/export}/fsloc.c | 0 >> {utils/mountd => support/export}/v4root.c | 0 >> {utils/mountd => support/include}/fsloc.h | 0 >> systemd/Makefile.am | 6 + >> systemd/nfs.conf.man | 10 + >> systemd/nfsv4-exportd.service | 12 + >> systemd/nfsv4-server.service | 31 +++ >> utils/Makefile.am | 4 + >> utils/exportd/Makefile.am | 65 +++++ >> utils/exportd/exportd.c | 276 ++++++++++++++++++++++ >> utils/exportd/exportd.man | 81 +++++++ >> utils/exportfs/exportfs.c | 21 +- >> utils/exportfs/exportfs.man | 7 +- >> utils/mountd/Makefile.am | 5 +- >> 21 files changed, 606 insertions(+), 18 deletions(-) >> rename {utils/mountd => support/export}/auth.c (99%) >> rename {utils/mountd => support/export}/cache.c (98%) >> create mode 100644 support/export/export.h >> rename {utils/mountd => support/export}/fsloc.c (100%) >> rename {utils/mountd => support/export}/v4root.c (100%) >> rename {utils/mountd => support/include}/fsloc.h (100%) >> create mode 100644 systemd/nfsv4-exportd.service >> create mode 100644 systemd/nfsv4-server.service >> create mode 100644 utils/exportd/Makefile.am >> create mode 100644 utils/exportd/exportd.c >> create mode 100644 utils/exportd/exportd.man >> >> -- >> 2.29.2 >