commit 0a47b71551d9f16702efcccc0b620eb52fd08d2c Author: Steve Dickson Date: Fri Jan 30 15:42:15 2015 -0500 Release 1.3.2 Signed-off-by: Steve Dickson commit cca657e86ba84da532138e7b6da30e37701202db Author: Steve Dickson Date: Fri Jan 30 15:41:24 2015 -0500 configure.ac: rpc.gssd now need libevent Signed-off-by: Steve Dickson commit b57865a8cf8b44044ca9993c4a954235731d182f Author: Steve Dickson Date: Wed Jan 28 08:50:28 2015 -0500 configure.ac: More clean up Added a couple default values to the flag descriptions Signed-off-by: Steve Dickson commit 521b5f4cc160b3d49debb94384f0129695e72710 Author: Steve Dickson Date: Wed Jan 28 08:04:13 2015 -0500 configure.ac: clean up Reworked the configuration flags. If the default is on the used --disable to turn off. If the default is off use --enable to turn on. Signed-off-by: Steve Dickson commit 24b5d60d7f0a514310df810e3eb27b72f665febf Author: Steve Dickson Date: Tue Jan 27 12:21:21 2015 -0500 svcgssd: Disable support for the rpcsec_gss server by default At this point the gssproxy is better option than the svcgssd so the support is off by default. Use --enable-svcgss to re-enable the support Signed-off-by: Steve Dickson commit 5c2a76cdd6659d838ed0c476a236524b12b14e8b Author: Steve Dickson Date: Tue Jan 27 12:08:07 2015 -0500 ipv6: Enable IPv6 support by default. Enable IPv6 support to be on by default. Use the --disable-ipv6 flag to disable the support Signed-off-by: Steve Dickson commit 22b76cbf6dbdb14ec778545b1d79b8eb0db15695 Author: Eryu Guan Date: Wed Jan 28 16:35:24 2015 -0500 tests: fix typo and let make check work again Comments in bash starts with '#' not '*' Signed-off-by: Eryu Guan Signed-off-by: Steve Dickson commit e1a49cf374c4fbb19066fe5368faadd2f79821a4 Author: Steve Dickson Date: Tue Jan 27 12:02:01 2015 -0500 mount.nfs: Set enable_mountconfig during configuration. Commit ee80d0aa enabled the mount config file but did not set the enable_mountconfig variable. Signed-off-by: Steve Dickson commit 9894b328aaf083532af5af4651903cfc1a7e6935 Author: David Hardeman Date: Wed Jan 21 17:15:41 2015 -0500 gssd - simplify handle_gssd_upcall Stumbled across this function, just had to simplify it. No mallocs necessary, one quick loop to find the parameters. Much simpler. Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit da7a3a2f06d77224de821d1fe44c813eacb30ab8 Author: David Hardeman Date: Wed Jan 21 17:13:52 2015 -0500 gssd - improve inotify Make full use of inotify by not rescanning the whole tree on each change, instead keep track of the inotify events and make sure that the minimum work (scan/create/delete) clients is done in most cases. Still detect anomalies and perform a full rescan in those cases. Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit e01a0c33d463fe8f0f465879e0b0e3f0b9519bc7 Author: David Hardeman Date: Wed Jan 21 17:11:47 2015 -0500 gssd - further shorten some pathnames Save some more memory by using relative pathnames. Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit 55197c98d57470ed2947153faf4a20a9fe483061 Author: David Hardeman Date: Wed Jan 21 17:10:07 2015 -0500 gssd - change dnotify to inotify This is just the first step, replacing dnotify with an inotify implementation that is not much better (still does a complete rescan of the whole rpc_pipefs tree on each change). Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit ad3ae8bc94df244870277638bd03b5141cc5d503 Author: David Hardeman Date: Wed Jan 21 17:08:24 2015 -0500 gssd - cleanup read_service_info There's a lot of fixed buffers in use here. Clean up the code and add more documentation on the different formats that have been used by the kernel. Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit aba5ea5c35222853986b6b20cce251c60ecb11f3 Author: David Hardeman Date: Wed Jan 21 17:06:18 2015 -0500 gssd - simplify client scanning Simplify the code responsible for the client dir scanning. This is also in preparation for the inotify patches. Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit 0d008e2df7ce6486442d556f375f98afd1ed228b Author: David Hardeman Date: Wed Jan 21 17:03:53 2015 -0500 gssd - simplify topdir scanning Simplify and refactor the code that does the topdir scanning, this is in preparation for the inotify patches. Signed-off-by: David H?rdeman Signed-off-by: Steve Dickson commit b193db916999fc78cd35f8245d3def841f71dd13 Author: David Hardeman Date: Wed Jan 21 17:02:23 2015 -0500 gssd - use more relative paths Using more relative paths saves memory and lets us get rid of more PATH_MAX fixed arrays. Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit eddf9b198514afbd94c88d22ffd2d8d3796b6066 Author: David Hardeman Date: Wed Jan 21 16:59:48 2015 -0500 gssd - keep the rpc_pipefs dir open Keep the rpc_pipefs dir open and just do a rewind/rescan when necessary. Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit 7e4a8324d9a2f12535e1342933549144cbef17aa Author: David Hardeman Date: Wed Jan 21 16:56:19 2015 -0500 gssd - make the client lists per-topdir This makes it easier to keep track of which client belongs to which topdir. Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit a5568bb1475530ebaf355e601bb7583b0b3b0901 Author: David Hardeman Date: Wed Jan 21 16:53:18 2015 -0500 gssd - remove "close me" code This code is mostly just confusing. Close the fds immediately instead of doing so later. Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit 509f274347f94a5e52f17bf511d2c011b791114b Author: David Hardeman Date: Wed Jan 21 16:50:50 2015 -0500 gssd - use libevent Using libevent (which is already in use in idmap) saves about a hundred lines of hand-rolled event loop code. Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit 64be4b7178b1a44b7d7f8127f582200c21830328 Author: David Hardeman Date: Wed Jan 21 16:39:57 2015 -0500 gssd - move over pipfs scanning code Move all rpc_pipefs scanning code from gssd_proc.c to gssd.c in preparation for later patches. Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit 5320b4dc5c307c0c864474cec90cb6a2cae30eb0 Author: David Hardeman Date: Wed Jan 21 16:38:15 2015 -0500 gssd - simplify topdirs path By chdir():ing to the root of the rpc_pipefs dir and making paths relative from there (gssd already keeps a number of files open in rpc_pipefs so chdir doesn't suddenly make it impossible to umount rpc_pipefs because of this patch). Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit 8cec94be9a50bafc184a1c95913308d412f922ac Author: David Hardeman Date: Wed Jan 21 16:30:41 2015 -0500 gssd - remove arbitrary GSSD_MAX_CCACHE_SEARCH limitation Get rid of another arbitrary limitation and PATH_MAX array. Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit 7d206b6b4dab52f24cd14e8c64654acc373922c1 Author: David Hardeman Date: Wed Jan 21 16:28:05 2015 -0500 gssd - simplify some option handling Using PATH_MAX in modern code is almost always a bad idea. Simplify the code and remove that arbitrary limitation at the same time. Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit 522838cae9d840d1696fcc0e7c70245027e44269 Author: David Hardeman Date: Wed Jan 21 16:22:56 2015 -0500 gssd - merge gssd_main_loop.c and gssd.c Having all the main loop code in one file is important in preparation for later patches which add inotify and libevent. Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit 7addf9dadb35e8f6a770b943e67ddc77e1bc97ba Author: David Hardeman Date: Wed Jan 21 16:16:59 2015 -0500 cleanup daemonization code The daemonization init/ready functions have parameters that are never used, require the caller to keep track of some pipefds that it has no interest in and which might not be used in some scenarios. Cleanup both functions a bit. The idea here is also that these two functions might be good points to insert more systemd init code later (sd_notify()). Also, statd had a private copy of the daemonization code for unknown reasons...so make it use the generic version instead. Signed-off-by: David H?rdeman Signed-off-by: Steve Dickson commit f980298853d9b12a222421342418732f65883c30 Author: Benjamin Coddington Date: Mon Dec 8 15:51:07 2014 -0500 mount.nfs: configurable minor version defaults Update nfsmount.conf to allow minor version specification, and rearrange the autonegotiation logic to agreed upon best behavior. Depending upon the combination of values specified within nfsmount.conf and given to mount.nfs, the retry behavior of mount.nfs varies according to the general rule of defaulting to the most specific setting, with some exceptions. A general guide to the expected behavior follows: ------------------ | nfsmount.conf |----------------------------------- | Defaultvers= | arg option | attempts: | |---------------------------------------------------| | 4.2 | not set | v4.2 v4.1 v4.0 v3 | | 4.2 | v4 | v4.2 v4.1 v4.0 | | 4.1 | not set | v4.1 v4.0 v3 | | 4.1 | v4 | v4.1 v4.0 | | 4 | not set | v4.0 v3 | | 4 | v4 | v4.0 | | 3 | not set | v3 | | any set | v4.2 | v4.2 | | any set | v4.1 | v4.1 | | any set | v4 | v4.0 | | any set | v3 | v3 | | not set | not set | v4.2 v4.1 v4.0 v3 | ----------------------------------------------------- If built with --enable-mountconfig=no, then the behavior is the same as if nfsmount.conf did not set Defaultvers. Signed-off-by: Benjamin Coddington Signed-off-by: Steve Dickson commit 7d2bdbcf5894149f2ef5eb61041e5ff51a2aa1ad Author: Benjamin Coddington Date: Mon Dec 8 15:43:34 2014 -0500 nfsmount.conf: Always parse versions In order to make decisions about which default version to use when only the major version is specified, the nfsmount.conf Defaultvers options should always be parsed, even when a version has already been specified. Remove the check and bypass for parsing the Defaultvers options from nfsmount.conf. Signed-off-by: Benjamin Coddington Signed-off-by: Steve Dickson commit 5bea22e33b7a0f1d2348100cbefbe45dd49cb23d Author: Benjamin Coddington Date: Mon Dec 8 15:34:51 2014 -0500 mount.nfs: Add struct nfs_version and generalize version parsing The nfs_version needs to carry major, minor, and basic mode information to allow decisions to be made to override, discard, or negotiate various versions. Update nfs_nfs_version() to work against this struct and set the various modes. This change also makes nfs_nfs_version() parse properly for future version number additions. The general rules for version.v_mode are - not set V_DEFAULT - single digit => 4 V_GENERAL - single digit < 4 V_SPECIFIC - decimal included V_SPECIFIC - miss all others V_PARSE_ERR Signed-off-by: Benjamin Coddington Signed-off-by: Steve Dickson commit 0ffc25463b3e6c5a87c14f782a7c1d19b13d318f Author: Benjamin Coddington Date: Mon Dec 8 15:32:29 2014 -0500 mount.nfs: parse options - add helper po_contains_prefix The version options (v3,v4,v4.2) may increase in the future, but they have a predictable prefix. Add a parse option helper to locate and return these options by prefix so that a future increment of version does not require the addition of strings to a search table. Signed-off-by: Benjamin Coddington Signed-off-by: Steve Dickson commit bcd629c66ed409d57027e830a1ac287d8af44d3c Author: Benjamin Coddington Date: Mon Dec 8 15:24:44 2014 -0500 mount.nfs: fix a comment typo in parse options Signed-off-by: Benjamin Coddington Signed-off-by: Steve Dickson commit ee80d0aacecb79ba653ac8599338627981079604 Author: Benjamin Coddington Date: Mon Dec 8 15:16:48 2014 -0500 mount.nfs: default enable mount config file (nfsmount.conf) Signed-off-by: Benjamin Coddington Signed-off-by: Steve Dickson commit 6efdb0440daf3ed304a3c1115f01e76e89d792a7 Author: Chris Mayo Date: Fri Jan 23 10:35:32 2015 -0500 systemd: Ensure RPC pipefs is mounted before rpc.idmapd starts rpc.idmapd aborts on start-up if RPC pipefs is not present. Needed if GSS services are not used. Signed-off-by: Chris Mayo Signed-off-by: Steve Dickson commit 6b9dca7911d3ca40f313e567d0263a6e6698ca78 Author: Scott Mayhew Date: Fri Jan 23 10:29:37 2015 -0500 rpc.idmapd: Add a reference to nfsidmap(8) on the man page Even though the 'new' idmapper used by the client has been around for several years, a lot of users seem to be unaware of its existence. Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 463e5d695642200e7171e9d2c495456a76323209 Author: Yann E. MORIN Date: Tue Jan 6 23:53:17 2015 +0100 configure: restore checking for authgss_free_private_data in libtirpc Since commit 8534063 (configure: use pkg-config to find libtirpc), we are missing the check for authgss_free_private_data in libtirpc. Restore this check, and adapt so that it works in both the pkg-config case and in the "old code" case. Signed-off-by: "Yann E. MORIN" Cc: Chuck Lever Cc: Steve Dickson Signed-off-by: Steve Dickson commit 58b6ed7f607609d0d13d20054dce850bda3b4bc5 Author: Yann E. MORIN Date: Tue Jan 6 23:38:50 2015 +0100 configure:restore the old way of checking for libtirpc Since 8534063 (configure: use pkg-config to find libtirpc), we use pkg-config to check for libtirpc (he!). As reported on the list, some user do not have the libtirpc registered with pkg-config (even though it has been since at least 0.1.8). So, partially restore the old checking code, as it was before 8534063, but adapted to work with the pkg-config check, and also adapted to only use proper macros (AS_IF) instead of shell constructs. Re-introduce that old code in a separate function, so it is easy to get rid of when we only want to support pkg-config in the future (i.e. when virtually all libtirpc versions in the wild have been properly installed). Reported-by: Chuck Lever Signed-off-by: "Yann E. MORIN" Cc: Steve Dickson Signed-off-by: Steve Dickson commit 0a2a8c5a01011ec2343f80cbed99054e88392665 Author: Yann E. MORIN Date: Tue Jan 6 23:36:27 2015 +0100 configure: be more laxist on the required libtirpc version Currently, we check for libtirpc >= 0.2.4 with pkg-config, because that is the one version I had to test against. As reported on the list, however, older versions are also supported. Relax the check to not require a version at all, and accept any version of libtirpc. Reported-by: Chuck Lever Signed-off-by: "Yann E. MORIN" Cc: Steve Dickson Signed-off-by: Steve Dickson commit 178ae731618d46b5df1ab227dfa0c96920c675df Author: Steve Dickson Date: Fri Jan 23 08:58:05 2015 -0500 rpc.idmap: Use event_initialized() to check if event is initialized Using EVLIST_INIT directly is bound to break. This seems to be a leftover from legacy code. Reported-by: Holger Hoffstatte Signed-off-by: Steve Dickson commit ac201cca3fe0f3530fe252e269d4b3dc662a77dc Author: Steve Dickson Date: Thu Jan 15 06:01:26 2015 -0500 sm-notify: Notify hosts in background sm-notify needs to notify hosts in background so the boot will not hang when the notified hosts do not answer. Signed-off-by: Steve Dickson commit fd88e113714a099e01d1fb34ade6b858904d664d Author: Steve Dickson Date: Wed Jan 14 10:27:49 2015 -0500 start-statd: Use the canonical to check if systemd is running. Use the approved way, define in http://www.freedesktop.org/software/systemd/man/sd_booted.html to check if systemd is installed and running Signed-off-by: Steve Dickson commit 88855c72ae341f545e9b669568c7a6bb3e257e17 Author: Steve Dickson Date: Wed Jan 14 10:26:49 2015 -0500 systemd: Bind the nfs-mountd service to the nfs-server service Use BindsTo, instead of PartOf, to bind the rpc-mountd service to the nfs-server service. Its a much tighter bind than PartOf. The Partof=nfs-utils.service was not needed. One side effect of this tighter bond is when rpc.mountd is stop, that will also bring the nfs server down as well, due to the Requires=nfs-mountd.service in the nfs-server service Signed-off-by: Steve Dickson commit b5cea96efb1512340a536e25650c5b548ddddfc6 Author: Steve Dickson Date: Wed Jan 14 10:09:03 2015 -0500 systemd: Bind rpc.idmapd to the nfs-server service Since rpc.idmapd is only used by the nfs server, to do its id mapping, bind the rpc-idmapd service to the nfs-server service so rpc.idmapd will started and stopped with the server. Signed-off-by: Steve Dickson commit fac4b7d30aafb6a02f66f29f0680db7b4894db79 Author: Scott Mayhew Date: Tue Nov 25 15:15:07 2014 -0500 mountstats: Updated the mountstats(8) man page. Added documentation for the iostat and nfsstat sub-commands. Added documentation for all of the options that have recently been added. Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 322494f37a4398a3361e146a5dc3c5aee43674ef Author: Scott Mayhew Date: Mon Nov 24 16:08:26 2014 -0500 mountstats: Implement the nfsstat sub-command Displays nfssstat-like statistics (client statistics only). Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 136f7fd22e02fbc52dc09f91b6b7de6b3e7c9570 Author: Scott Mayhew Date: Mon Nov 24 16:02:11 2014 -0500 mountstats: Add support for -R/--raw to mountstats_command This option displays the mountstats in raw format (i.e. in the same format as /proc/self/mountstats). It's intended to be used mainly with the -S/--since option. Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 0f394a34912ad70e69cce48da36b4771fdbbc141 Author: Scott Mayhew Date: Mon Nov 24 15:59:21 2014 -0500 mountstats: Allow mountstats_command to take a variable number of mountpoints Allow the mountstats command to take a variable number of mountpoints (including none, in which case it will print stats for all NFS mountpoints it finds). Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit cb4b4bc950511f87c07bf34f519db8237d494838 Author: Scott Mayhew Date: Tue Oct 21 13:23:03 2014 -0400 mountstats: Fix IndexError in __parse_nfs_line If __parse_nfs_line is is called on a line that has 'fstype nfsd', it'll raise an IndexError trying to parse a nonexistent statvers entry. Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 072a2556ebbac6f59d5c7624a829d0d93f9c38ba Author: Scott Mayhew Date: Mon Nov 24 15:57:27 2014 -0500 mountstats: Add support for -S/--since Add support for -S/--since to display the delta between a previous copy of /proc/self/mountstats and the current /proc/self/mountstats file. Can be combined with the -f option to show the statistics between two different points in time. Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 774efad8873517f9c18608eb25ea6334f722ac0c Author: Scott Mayhew Date: Mon Nov 24 13:35:48 2014 -0500 mountstats: Add support for -f/--file Add support for the -f/--file option to allow parsing of data from an arbitrary file instead of /proc/self/mountstats. Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 17ca77b621fa94a1b0354e39be203c23243dfba8 Author: Scott Mayhew Date: Mon Oct 20 16:41:13 2014 -0400 mountstats: Make print_iostat_summary handle newly appearing mounts Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 69d6113cfd8d059b09622477226180d02ebd564e Author: Scott Mayhew Date: Mon Oct 20 16:32:46 2014 -0400 mountstats: Make the iostat sub-command output match that of nfs-iostat.py Changes mostly lifted straight from nfs-iostat.py. Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 649f8dc903bb002d056ee3d6fddebea0bdfa9bad Author: Scott Mayhew Date: Mon Oct 20 16:16:56 2014 -0400 mountstats: Convert existing option parsing to use the argparse module Made mountstats, nfsstat, and iostat all subcommands (note that the nfsstat function is still unimplemented here). If no sub-command is given, then the mountstats sub-command will run by default (so any scripts that run older versions of the mountstats command will still work). Also removed the --start and --end options since all they do is throw exceptions. Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit da37c2b86ac19aac1716f72bf0000824b03960c4 Author: Scott Mayhew Date: Mon Oct 20 15:35:45 2014 -0400 mountstats: Refactor compare_iostats Iterate over the newly added counters instead of using repeated assignment statements. Also compute the difference of every counter where it makes sense -- this will allow support for -S/--since to be implemented in the future. Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 935011c48824f55a14989ad1eba96cc07660517c Author: Scott Mayhew Date: Mon Oct 20 15:23:08 2014 -0400 mountstats: Refactor __parse_nfs_line and __parse_rpc_line Iterate over the newly added counter lists instead of having a ton of assignment statements. Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 78d0fdb5eb3c452d5c85b9e960bbcea25dc23ccd Author: Scott Mayhew Date: Mon Oct 20 15:10:11 2014 -0400 mountstats: Add lists of various counters The NfsEventCounters and NfsByteCounters were lifted straight from nfs-iostat.py. Also added counters for the xprt line (for udp, tcp, and rdma) as well as for v3 and v4 NFS ops. These will allow for more compact code in a couple of places. Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit b6cf0730a395b4e388d5a968f14ef0a1b317b434 Author: Scott Mayhew Date: Mon Oct 20 14:55:07 2014 -0400 mountstats: Fix up NFS event counters The event counters in the mountstats program aren't in sync with the event counters in the kernel. Removed syncinodes and added vfsupdatepage, vfssetattr, congestionwait, pnfsreads, and pnfswrites. Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 853406302d7a506605ce64592e77fd722b5e23d5 Author: Yann E. MORIN Date: Sat Dec 13 10:16:38 2014 -0500 configure: use pkg-config to find libtirpc Currently, we use a custom function to find libtirpc's headers and libraries. This works fine for shared linking. But for static linking, this forgets to link with -lpthread, which is required by libtirpc. A recent patch was sent to libtirpc to add that missing -lpthread in its Libs.private section of its .pc file. Thus, pkg-config will soon be able to return the appropriate libraries. So, use pkg-config to find libtirpc. And for older libtirpc versions, there is no change in behaviour: we're still missing the -lpthread. But once libtirpc has been fixed, we'll automatically get that missing library for free! Remove the --with-libirpc flag as it is no longer needed: pkg-config will provide us with the -I and -L flags, now. Signed-off-by: "Yann E. MORIN" Signed-off-by: Steve Dickson commit 1f43f91cb4e3d7cd56baeda5eeaa025bf7613e6b Author: Steve Dickson Date: Tue Dec 9 14:12:26 2014 -0500 systemd: added the $BLKMAPDARGS var to the nfs-blkmap service Signed-off-by: Steve Dickson commit e48c7e878f1ada4603fe7a144c20643ce705b9f2 Author: David Hardeman Date: Mon Dec 8 11:18:32 2014 -0500 rpcgen: change internal rpcgen to support separate builddir rpcgen uses absolute paths (based on the input) when generating the output files, thus breaking builds using a separate build directory. Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit a66af8a4b35a0dee81cd47dbc7d25f4694447ffb Author: David Hardeman Date: Mon Dec 8 11:12:42 2014 -0500 gssd: fix gssd build flags The tirpc variable is another library to add, not additional flags. I'm guessing the reason this hasn't caused problems is that it only shows up with static libraries. Signed-off-by: David Hardeman Signed-off-by: Steve Dickson commit 0fbf91a4fd904724ce031d73d282608104c84eac Author: NeilBrown Date: Sun Dec 7 10:40:24 2014 -0500 Include systemd unit files in "dist" and "install". New configure option "--with-systemd" will causes systemd unit files to be installed in /usr/lib/systemd/system. Alternalte a path can be given: --with-systemd=/lib/systemd/system Also, systemd files get included in "make dist" now. Signed-off-by: NeilBrown Signed-off-by: Steve Dickson commit 56cfa334c9cf3bccebbd0548706e69f9e201d66d Author: NeilBrown Date: Sun Dec 7 10:34:31 2014 -0500 Fix up issue with "make dist" Add mention of new files, remove mention of old files, and cause "make dist" to create something very similar to the current distributions. systemd files are not currently included in "make dist" and some files generated by "rpcgen" are (though they aren't in official distribution). Signed-off-by: NeilBrown Signed-off-by: Steve Dickson commit 19ee9c81c2454f53a3369d8b23ba539c1f6bab31 Author: Timo Teräs Date: Sun Dec 7 10:27:19 2014 -0500 nfslib: remove now unused FILE helpers All access to kernel is now done using file descriptors. Signed-off-by: Timo Ter?s Signed-off-by: Steve Dickson commit 1fc0c82c307824ca01c815eeb300b372cb2d829d Author: Timo Teräs Date: Sat Dec 6 12:23:40 2014 -0500 nfsexport: talk to kernel using file descriptors instead of FILE Signed-off-by: Steve Dickson commit 6e5a97f2a1fd2c40a89c0846cb1e8f1b3bfd3a97 Author: Timo Teräs Date: Sat Dec 6 12:21:27 2014 -0500 gssd: talk to kernel using file descriptors instead of FILE Signed-off-by: Steve Dickson commit 510465f44669be366fdb59f40372a9c6123a0231 Author: Timo Teräs Date: Sat Dec 6 12:18:11 2014 -0500 mountd: talk to kernel using file descriptors instead of FILE Signed-off-by: Steve Dickson commit a32adf5a11a22c480a10ebc8c9238771e13fe05e Author: Timo Teräs Date: Sat Dec 6 12:16:30 2014 -0500 Add string.h to source files that need it Signed-off-by: Steve Dickson commit 4ac215e53e7d1ae54da2930f2d77eff74092040d Author: Chuck Lever Date: Sat Dec 6 17:22:14 2014 -0500 mountstats: Sort RPC statistics by operation count Sort the RPC statistics in descending order by operation count, so that the most frequently executed operation appears at the top of the listing (a la `top`). Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit d6ef125c4be83de1d94727bf6be74cd7c0bf424c Author: Pavel Raiskup Date: Wed Dec 3 17:10:11 2014 -0500 exportfs: warn when really nothing is exported Throw 'No file systems exported!' iff no volume is exported rather then if some exports file is empty. Typically this can happen if the default /etc/exports file is empty and admin installed configuration into /etc/exports.d directory. This is follow-up for e725def62c73b4 commit. Signed-off-by: Pavel Raiskup Signed-off-by: Steve Dickson commit 72819502650d39e7791adebe737a6d04124d9ef3 Author: Jeff Layton Date: Mon Nov 17 13:59:41 2014 -0500 nfsdcltrack: use sqlite3_errmsg instead of sqlite3_errstr sqlite3_errstr was only added in v3.7.15 of libsqlite3, which makes it difficult to build against earlier releases. Switch the code over to use sqlite3_errmsg instead. Signed-off-by: Jeff Layton Signed-off-by: Steve Dickson commit caf2c4070dd62351f224a01735f5489830643fbf Author: Jeff Layton Date: Mon Nov 17 13:58:48 2014 -0500 nfsdcltrack: use sqlite3_close instead of sqlite3_close_v2 sqlite3_close_v2 wasn't added until v3.7.14 of libsqlite3 so this causes the build to fail vs. very old sqlite3 libs. Also, Chuck points out that the documentation says that sqlite3_close_v2 is intended for use with host languages that are garbage collected, and C isn't. In practice, we shouldn't ever see sqlite3_close return SQLITE_BUSY here anyway since the program is single-threaded, so sqlite3_close should be fine. Signed-off-by: Jeff Layton Signed-off-by: Steve Dickson commit e725def62c73b4aa269fefc4c0d96abb41927fcb Author: Steve Dickson Date: Mon Nov 17 13:17:20 2014 -0500 exportfs: Do not fail on empty exports file. Commit 076dd80 introduced a regression that causes exportfs to fail when there is an empty /etc/exports file. A empty /etc/exports file is valid and should not cause exportfs to fail. Signed-off-by: Steve Dickson Signed-off-by: Steve Dickson commit 22656570c024e378baf66ca26fe2ab2bcc897129 Author: Chuck Lever Date: Mon Nov 17 12:56:44 2014 -0500 mountstats: Fix spurious I/O errors When running mountstats under "watch," occassionally the output shows "close failed in file object desctructor: sys.excepthook is missing" and the data display is messed up. This seems to be a common problem when Python script output is piped to another program. Ensure stdout/stderr is completely flushed before mountstats exits, and add an IOError exception handler to catch these exceptions gracefully. Solution suggested by: http://bugs.python.org/issue11380 Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit e4569a0961ff9f059b9ae71327d291cf95399597 Author: Bodo Stroesser Date: Wed Nov 12 09:43:29 2014 -0500 rpc.mountd: set libtirpc nonblocking mode to avoid DOS This patch is experimental. In works fine in that it removes the vulnerability against a DOS attack. rpc.mountd can be blocked by a bad client, that sends many RPC requests but never reads the responses. This might happen intentionally or caused by a wrong network config (MTU). The patch switches on the nonblocking mode of libtirpc. In that mode writes can block for a max of 2 seconds. Attackers are forced to send requests slower, as libtirpc will close a connection if it finds two requests to read at the same time. Reviewed-by: NeilBrown Signed-off-by: Bodo Stroesser Signed-off-by: Steve Dickson commit aba23f36c4dbc22d0d6d4afe6896bc5bf7f1caa6 Author: Bodo Stroesser Date: Wed Nov 12 09:19:09 2014 -0500 rpc.mountd: set nonblocking mode with libtirpc If mountd is built with libtirpc the tcp listeners and the sockets waiting for UDP messages are not in non-blocking mode. Thus if running with multiple threads (-t XX), all threads will wake up from select on a connection request or a UDP message, but only one thread will succeed. All others will wait on accept() or read() for the next event. Reviewed-by: NeilBrown Signed-off-by: Bodo Stroesser Signed-off-by: Steve Dickson commit e2989f2f5fd709c19eeb92780a51ae58d3501db8 Author: Bodo Stroesser Date: Wed Nov 12 09:03:24 2014 -0500 rpc.mountd: set nonblocking mode if no libtirpc If mountd is built without libtirpc and it is started using "-p XXX" option, the tcp listeners and the sockets waiting for UDP messages are not in non-blocking mode. Thus if running with multiple threads (-t XX), all threads will wake up from select on a connection request or a UDP message, but only one thread will succeed. All others will wait on accept() or read() for the next event. Reviewed-by: NeilBrown Signed-off-by: Bodo Stroesser Signed-off-by: Steve Dickson commit f44169dfe52ece05b1c36c0f3c3ea0427f295ace Author: Steve Dickson Date: Thu Nov 6 07:38:19 2014 -0500 configure: Fixed typo in configure.ac Signed-off-by: Steve Dickson commit e186d734cb3d7c53ef8038b2f62e5b1825d9fa26 Author: Steve Dickson Date: Wed Nov 5 11:12:03 2014 -0500 configure: Fixed logic around $enable_gss and $enable_svcgss Signed-off-by: Steve Dickson commit 076dd803330d93819c6e7862f515a8fa3997a83b Author: Henrique Martins Date: Tue Nov 4 15:12:16 2014 -0500 exportfs: changes handling of unresolvable entries The patch to nfs/exportfs to allow nfsd to start when there are some, but not all, unresolvable entries in /etc/exports. Signed-off-by: Henrique Martins Signed-off-by: Steve Dickson commit 7afda720e48d774ccc02c7e6b97f05882bba3d06 Author: Benjamin Coddington Date: Tue Nov 4 14:46:17 2014 -0500 nfsidmap: Correct a failure to set key timeout values The caller must be a possesor of the key to set the attributes, so link the destination keyring to the current thread's keyring before instantiation so that after instantiation the timeout can be set. Signed-off-by: Benjamin Coddington Signed-off-by: Steve Dickson commit f862ad1a94201df13b46cedca3cef2192c100b50 Author: Benjamin Coddington Date: Tue Nov 4 14:41:02 2014 -0500 nfsidmap: set the correct DEFAULT_KEYRING string Signed-off-by: Benjamin Coddington Signed-off-by: Steve Dickson commit e9932d8f6986ec4915bfc8c0b0631255ce2b80df Author: Benjamin Coddington Date: Tue Nov 4 14:23:08 2014 -0500 nfsidmap: keyctl_invalidate kernel compatibility Change the keyctl_invalidate call to use the syscall interface directly so that when building with libkeyutils missing keyctl_invalidate the build succeeds. Attempt to use _invalidate and fall back to _revoke if the current kernel is missing _invalidate. Signed-off-by: Benjamin Coddington Signed-off-by: Steve Dickson commit 8f2e933aec15d06b0f1d95ea08c72e4d497f8dbf Author: Signed-off-by: Chuck Lever Date: Tue Nov 4 14:02:05 2014 -0500 mountstats: Don't display retrans stats unless there are re-xmit Clean up display of RPC statistics by omitting retransmit statistics when there have been no retransmissions. Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit a34ded08b39cc29652030a3f0a16c13ea977d9cb Author: Karel Zak Date: Fri Oct 24 09:28:57 2014 -0400 umount: make it sensitive to -v Let's print verbose messages like original non-libmount version. Signed-off-by: Karel Zak Signed-off-by: Steve Dickson commit 86d33d888cd4f23a1816d4806627271ce062d9a3 Author: Marko Myllynen Date: Wed Oct 22 11:32:23 2014 -0400 nfsstat: fix server rpc stats header linux/net/sunrpc/stats.c has: /* * Get RPC server stats */ void svc_seq_show(struct seq_file *seq, const struct svc_stat *statp) { ... seq_printf(seq, "rpc %u %u %u %u %u\n", statp->rpccnt, statp->rpcbadfmt+statp->rpcbadauth+statp->rpcbadclnt, statp->rpcbadfmt, statp->rpcbadauth, statp->rpcbadclnt); ... But when /proc/net/rpc/nfsd contains rpc 1 2 3 4 5 nfsstat -sv prints: Server rpc stats: calls badcalls badclnt badauth xdrcall 1 2 3 4 5 Change this to match the kernel: Server rpc stats: calls badcalls badfmt badauth badclnt 1 2 3 4 5 Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1142842. Signed-off-by: Marko Myllynen Reviewed-by: Christoph Hellwig Signed-off-by: Steve Dickson commit 8d51c77c81f0cd5b0b8508eb50d5a53d6d2375ae Author: Simo Sorce Date: Tue Sep 30 15:33:10 2014 -0400 Centralize dependencies on the auth unit. With this patch either gssproxy or rpc.svcgssd are started only if the auth module is requested, and it finds a keytab. If the wants are in the main nfs-client or nfs-server unit files then the two deamons are started unconditionally and would require conditions which we can test once and for all in a single unit file instead. Change also Before and After statments accordingly to properly serialize loading modules and starting daemons in 3 steps 1. load kernel GSS auth module 2. start GSS handling daemons 3. start NFS client/server daemons Signed-off-by: Simo Sorce Signed-off-by: Steve Dickson commit 12a95edae598ba0c63a30b07d7b3529871e145e2 Author: Steve Dickson Date: Mon Sep 29 11:23:39 2014 -0400 nfs-client.target: Removed a ordering cycle with nfs-server.service On a VM that boots very fast and with out kerberos enabled a systemd ordering cycle happens between nfs-client and nfs-server units when both were enabled. Having nfs-client start the gssd daemons in the same matter as the nfs-server does ('After=') seemed to eliminated the ordering cycle. Acked-by: J. Bruce Fields Signed-off-by: Steve Dickson