commit 71ce07f2c87c450cbc3ca233c520584b897c4761 Author: Steve Dickson Date: Sat Sep 26 10:01:11 2015 -0400 Release 1.3.3 Signed-off-by: Steve Dickson commit ad50822bf010c5a7917f160b4d4b39e71f15d086 Author: Andy Adamson Date: Wed Sep 23 16:01:43 2015 -0400 GSSD: clean up machine credentials Since we no longer fork for uid 0, gssd_atexit() is only called when uid != 0, and fails as permissions on the /tmp/krb5ccmachine_REALM file prohibit the clean up of machine credentials (as it should). Move the reaping of machine credentials back into a SIGINT sighandler so that destroyes machine credentials. Signed-off-by: Andy Adamson Signed-off-by: Steve Dickson commit 30c37b2dd6decdd65a33b956a5ae4b548de63a6d Author: Andy Adamson Date: Wed Sep 23 15:52:15 2015 -0400 GSSD only fork when uid is not zero commit f9cac65972da588d5218236de60a7be11247a8aa added the fork to process_krb5_upcall so that the child assumes the uid of the principal requesting service. When machine credentials are used, a gssd_k5_kt_princ entry is added to a global list and used by future upcalls to note when valid machine credentials have been obtained. When a child process performs this task, the entry to the global list is lost upon exit, and all upcalls for machine credentials re-fetch a TGT, even when a valid TGT is in the machine kerberos credential cache. Since forking is not necessary when the principal has uid=0, solve the gssd_k5_kt_princ_list issue by only forking when the uid != 0. Acked-by: Jeff Layton Signed-off-by: Andy Adamson Signed-off-by: Steve Dickson commit cbe19a1d34d4d13f41337047da26ec1ef82ed44c Author: Andy Adamson Date: Wed Sep 23 11:00:56 2015 -0400 GSSD: move process_krb5_updcall non machine cred case to helper function Signed-off-by: Andy Adamson Signed-off-by: Jeff Layton Signed-off-by: Steve Dickson commit 1201d5d8aeb0651a6fe195bc8232128ddf6e8b28 Author: Andy Adamson Date: Wed Sep 23 10:56:39 2015 -0400 GSSD: move process_krb5_upcall machine cred case to helper function Signed-off-by: Andy Adamson Signed-off-by: Jeff Layton Signed-off-by: Steve Dickson commit f2efa15ef8c083926791195ed1037fd47a5e4e41 Author: Scott Mayhew Date: Wed Sep 16 11:19:41 2015 -0400 mountstats.man: Remove a few bogus .R macros These have no effect on the rendering of the man page, but they do cause the following error if you try to pipe or redirect the output: `R' is a string (producing the registered sign), not a macro. Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 3a5732152c60f8cefaa804db0b81e424e96ee657 Author: Chuck Lever Date: Wed Sep 16 11:18:02 2015 -0400 statd: statd_get_socket() should return open fds Tastky reports: > There appears to be a bug in nfs-utils exposed by musl, which > makes rpc.statd loop with: > > my_svc_run() - select: Bad file descriptor OpenGroup says getservbyport(3) is supposed to return NULL when no entry exists for the specified port. But musl's getservbyport(3) never returns NULL (likely a bug). Thus statd_get_socket() tries bindresvport(3) 100 times, then gives up and returns the last socket it created. This should work fine, but there's a bug in the retry loop: Rich Felker says: > The logic bug is the count-down loop that closes all the temp > sockets. In the case where the loop terminates via break, it > leaves the last one open and only closes the extras. But in the > case where where the loop terminates via the end condition in the > for statement, the close loop closes all the sockets _including_ > the one it intends to use. (emphasis mine). The closed socket fd is then passed to select(2). See also: http://www.openwall.com/lists/musl/2015/08 The fix is to perform the loop termination test before adding sockfd to the set of fds to be closed. As additional clean ups, remove the use of the variable-length stack array, and switch to variable names that better document the purpose of this logic. Reported-by: Tastky Fixes: eb8229338f06 ("rpc.statd: Fix socket binding loop.") Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit 78240c41be17bd20d5fb5b70b6f470d8e779adee Author: Vivek Trivedi Date: Wed Sep 16 11:14:03 2015 -0400 mountd: fix mount issue due to comparison with uninitialized uuid Fix mount issue due to comparison of uninitialized variable u(uuid) with parsed->fhuuid when uuid_by_path return 0. /tmp/usb 192.168.1.0/16(ro,no_root_squash,no_subtree_check,fsid=0) /tmp/usb/sda1 192.168.1.0/16(ro,no_root_squash,no_subtree_check) /tmp/usb/sdb1 192.168.1.0/16(ro,no_root_squash,no_subtree_check) mount -t nfs -o nolock,nfsvers=3 192.168.1.2:/tmp/usb/sda1 /tmp/sda1 mount -t nfs -o nolock,nfsvers=3 192.168.1.2:/tmp/usb/sdb1 /tmp/sdb1 results in below mountd error: mountd: /tmp/usb and /tmp/usb/sdb1 have same filehandle for 192.168.1.0/16, using first when uuid_by_path returned 0, by chance, garbage value of u was same as parsed->fhuuid(of sdb1), and comparison of these resulted in above error. Signed-off-by: Vivek Trivedi Reviewed-by: Amit Sahrawat Signed-off-by: Steve Dickson commit a4def734f7b9601c9ce89f18841aadf7a1962063 Author: Chuck Lever Date: Wed Sep 16 11:06:50 2015 -0400 nfsidmap: Clean up other exit status cases Make it unambiguous where 0 or 1 represent an exit status. Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit 0b463a7bc09d89e0e141546ea5c5c59d94c5fefe Author: Chuck Lever Date: Wed Sep 16 11:03:54 2015 -0400 nfsidmap: Fix error handling in name_lookup() As near as I can tell, the exit status of nfsidmap is supposed to be zero (success) or one (failure). The return value of name_lookup() becomes the exit status, so it should return only zero or one. The libnfsidmap calls return a signed integer, either 0 or negative errno values. These have to be translated to an exit status. libkeyutils calls return a signed long, either 0 or -1. These also have to be translated to an exit status. Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit 49f6c29fcfd924b2b964cce75623463c0d1c0d59 Author: Chuck Lever Date: Wed Sep 16 11:02:19 2015 -0400 nfsidmap: Fix error handling in id_lookup() As near as I can tell, the exit status of nfsidmap is supposed to be zero (success) or one (failure). The return value of id_lookup() becomes the exit status, so it should return only zero or one. The libnfsidmap calls return a signed integer, either 0 or negative errno values. These have to be translated to an exit status. libkeyutils calls return a signed long, either 0 or -1. These also have to be translated to an exit status. Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit 43bcaca81740cbe78f4f97cf8b0fc39350a17a68 Author: Chuck Lever Date: Wed Sep 16 11:00:12 2015 -0400 nfsidmap: List cached ID mapping results User space can see the keys, but not their contents. Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit 8903d75ed4abd4207873b315885b559abfaa2af8 Author: Chuck Lever Date: Wed Sep 16 10:19:36 2015 -0400 nfsidmap: Use find_key_by_type_and_desc() if available Recent versions of libkeyutils have find_key_by_type_and_desc() which replaces the open-coded keyring search in keyring_clear(). I don't quite understand what's going on in key_invalidate(), so I didn't touch it. Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit 5135a70fd0917986a575f9f01d0a29b5c93c4041 Author: Chuck Lever Date: Wed Sep 16 09:41:32 2015 -0400 nfsidmap: Display the effective NFSv4 domain name Sorry for the extensive man page changes. I added the description for the new "-d" option, then realized there was no explanation about what an "NFSv4 domain name" is. Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit 017164521b94018bd143b879b0e858d98cca83e8 Author: Steve Dickson Date: Tue Sep 15 14:16:42 2015 -0400 configure.ac: with-systemd flag not using default directory The with-systemd config flag was not using the default directory when a directory was not given Signed-off-by: Steve Dickson commit 67a435bbf5015d8d2f6008744cadab4c4ede7c07 Author: Aurelien Chabot Date: Tue Sep 15 14:15:28 2015 -0400 Install only needed systemd unit file Signed-off-by: Aurelien Chabot Signed-off-by: Steve Dickson commit 34fd18332fd536e2f7a75274576bfa49f0af34e7 Author: Steve Dickson Date: Tue Sep 8 10:25:24 2015 -0400 Revert "rpc.gssd: Replace exit(0) by return in process_krb5_upcall" This reverts commit 21f10369965bb183d1a72df1da0c2811cd2b1d5c due to child processes not exiting on upcalls. commit 21f10369965bb183d1a72df1da0c2811cd2b1d5c Author: Andy Adamson Date: Mon Aug 24 13:50:09 2015 -0400 rpc.gssd: Replace exit(0) by return in process_krb5_upcall From: Andy Adamson exit(0) silenty reaps the gssd_k5_kt_princ struct, the in-memory rpc.gssd cache which means that rpc.gssd will get a new TGT and TGS for each upcall, ignoring a valid TGT in the kerberos credential cache. Signed-off-by: Andy Adamson Signed-off-by: Steve Dickson commit 8c7d7fe5577b059130d472d4145a09cf9d4a7ea2 Author: Steve Dickson Date: Mon Aug 10 09:58:01 2015 -0400 mountstats.man: fixed typo in man page Signed-off-by: Steve Dickson commit a705076172b274463563416adffe55f129740267 Author: Steve Dickson Date: Thu Jul 30 17:06:39 2015 -0400 rpc.gssd: Only clear the retval if it has not been set In gssd_search_krb5_keytab() an error code can be cleared by blindly setting retval to zero. Reported-by: Jianhong Yin Signed-off-by: Steve Dickson commit 9bfca466c97ffff94f15923905d39782d0c85249 Author: Steve Dickson Date: Tue Jul 14 15:37:25 2015 -0400 Fixed typo in rpc.mount man page Signed-off-by: Steve Dickson commit b13027f442e3bbb5f52a1facaa486f36b6d4d751 Author: Kinglong Mee Date: Tue Jul 14 14:03:33 2015 -0400 blkmapd: Skip the SCSI ID if data length is zero In vmware linux, the iscsi device contains more than one SCSI ID, and the second one's data length is zero. If there are two iSCSI devices with the second SCSI ID's data length is zero, the first iSCSI device will record with an invalid SCSI ID as zero length, the second one will be treat as the first one for the SCSI ID is zero length too. It means the only the first iSCSI device is exist in blkmapd's cache, the request for the second iSCSI device will failed as, "blkmapd: Could not find disk for device" and, "bl_resolve_deviceid failed to decode device: 2". v2, update comments v3, add a comment in the code v4, update comment as Christoph's suggestion Signed-off-by: Kinglong Mee Signed-off-by: Steve Dickson commit 2f8a60200f4cc599bb421eb22de3212488d28701 Author: Chuck Lever Date: Tue Jul 14 10:42:16 2015 -0400 rpc.nfsd: Squelch DNS errors when using the --host option Sean Elble says: > [rpc.nfsd --host] throws an error/warning (where nfs-server is > defined in /etc/hosts for the IPv4 address of the interface I wish > for TCP port 2049 to be opened on): > > rpc.nfsd: unable to resolve nfs-server:nfs to inet6 address: Name > or service not known I think we can simplify the use of getaddrinfo(3) so that only one call is needed to gather both IPv4 and IPv6 addresses. The call should fail, and an error should be reported, only when there are _no_ addresses bound to a hostname. Reported-by: Sean Elble Reviewed-by: Kinglong Mee Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit c6b8191374d9ad064eb96423400a6314c2d0102e Author: Kinglong Mee Date: Tue Jun 30 14:12:38 2015 -0400 blkmapd: Fix infinite loop when reading serial If (dev_id->ids & 0xf) < current_id, must updates pos when continue. Otherwise an infinite loop. No other places use the pos value, just move to the top of while. Signed-off-by: Kinglong Mee Signed-off-by: Steve Dickson commit 8b3abe3a0ae941f3f52f99bc44388b7beb3d9bb8 Author: Colin Walters Date: Fri Jun 26 09:31:16 2015 -0400 systemd: Set var-lib-nfs-rpc_pipefs.mount After= tmpfiles OSTree is a mechanism for atomic updates of operating systems, with designs for how system state is managed; in particular, `/var` should start out empty, and components are responsible for creating content there at runtime. rpm-ostree consumes RPMs and commits them to an OSTree repository. It has some support for automatically synthesizing systemd `tmpfiles.d` snippets from RPM content in `/var` using systemd-tmpfiles. However, in this case nfs-utils wants a mount point directory, and it's running before systemd-tmpfiles. It should be perfectly fine to do this mount after tmpfiles has run. A better fix for this would be to move transient directories to `/run`; However, that would be an invasive change, which can happen after this fix. Signed-off-by: Colin Walters Signed-off-by: Steve Dickson commit b98f2af15fea1d14a4b6ab1ab2dcdfec8db5dd1b Author: Steve Dickson Date: Thu Jun 25 11:09:38 2015 -0400 nfs-server: Use rpcbind.service instead of rpbind.target To trigger the systemd socket activation support in rpcbind, nfs-service needs to Requires/After rpcbind.service instead of rpbind.target Signed-off-by: Steve Dickson commit 60e1bdd3e3b586dfa30df976d99744d0cfc77b66 Author: Steve Dickson Date: Thu Jun 25 10:14:54 2015 -0400 mount.nfs manpage: Add nfsmount.conf Add nfsmount.conf to both the FILES and SEE ALSO sections Signed-off-by: Steve Dickson commit e2f63adcecb6b85388bef0e7d76480a3152d826c Author: Steve Dickson Date: Thu Jun 25 10:09:36 2015 -0400 nfs manpage: Add nfsmount.conf Add nfsmount.conf to both the FILES and SEE ALSO sections Signed-off-by: Steve Dickson commit c1395ccf1afcf949f873905253494aeb60b632c9 Author: Scott Mayhew Date: Wed Jun 3 15:02:02 2015 -0400 mountstats: Fix the retrans counter output by the nfsstat command Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit e69eaaf93626e87dd93b345e1c84ffdd6c66ce6c Author: Kinglong Mee Date: Wed May 6 16:17:40 2015 -0400 security information number as, 1 1 0 0 It's caused by commit 4a1ad4aa30, "mountd: Enable all auth flavors on pseudofs exports" This patch removes duplicate secinfo and invalid secinfo (zero). Acked-by: Scott Mayhew Signed-off-by: Kinglong Mee Signed-off-by: Steve Dickson commit d57c433481c7ee5fc50a186188f9c205d16746c1 Author: Kinglong Mee Date: Wed May 6 15:25:12 2015 -0400 mount: Writes signal number to kernel as command line When mounting nfs with -overs=4,minorversion=2, want getting nfs mounts with vers=4.2, but got vers=4.0 as, It's caused by mount.nfs writing bad vers to kernel. This patch lets mount.nfs writing signal number to kernel as command line. Reviewed-by: Benjamin Coddington Signed-off-by: Kinglong Mee Signed-off-by: Steve Dickson commit bf5c78cc241a1455462f9f5e1e40b6c820d23bbd Author: Kinglong Mee Date: Wed May 6 15:21:50 2015 -0400 When mounting nfs with -ov4, -overs=4 or -onfsvers=4, fail as, mount -t nfs -ov4 192.168.31.12:/ /testidr/ mount.nfs: access denied by server while mounting 192.168.31.12:/ Fixes: f980298853 "mount.nfs: configurable minor version defaults" Reviewed-by: Benjamin Coddington Signed-off-by: Kinglong Mee Signed-off-by: Steve Dickson commit 3e28fe73af023bf42e0d654146bfb9314b4d8438 Author: Kinglong Mee Date: Wed May 6 15:19:18 2015 -0400 osd_login: add --disable-osdlogin for configure osd_login Configure using the following command ./configure --prefix=/home/username/installs/tmp --exec-prefix=/home/username/installs/tmp When running "make install" most of the packages are put under /home/username/installs/tmp, but for some reason the install script tries to put osd_login under /sbin, which results in an error: Making install in osd_login make[2]: Entering directory `/home/username/installs/nfs-utils-1.3.2/utils/osd_login' make[3]: Entering directory `/home/username/installs/nfs-utils-1.3.2/utils/osd_login' /usr/bin/mkdir -p '/sbin' /usr/bin/install -c osd_login '/sbin' /usr/bin/install: cannot remove ‘/sbin/osd_login’: Permission denied make[3]: *** [install-dist_sbinSCRIPTS] Error 1 Reported-by: Eino Juhani Oltedal Signed-off-by: Kinglong Mee Signed-off-by: Steve Dickson commit 441a3183399a423a3c86675c7c5395a1514b8a1d Author: Kinglong Mee Date: Wed May 6 15:04:57 2015 -0400 configure.ac: fix configure fail with --disable-mount Configure fail as, ./configure --disable-mount : checking for suitable libblkid version... yes checking for mnt_context_do_mount in -lmount... no configure: error: libmount needed Signed-off-by: Kinglong Mee Signed-off-by: Steve Dickson commit 51ec5b18dba93ae816973f098d179826f243655e Author: Kinglong Mee Date: Wed May 6 14:44:44 2015 -0400 configure.ac: fix typo of enable_nfsdcltrack Signed-off-by: Kinglong Mee Signed-off-by: Steve Dickson commit 4927109a739edd57a5c7eb4311127e5349dcaba2 Author: Steve Dickson Date: Thu Apr 30 14:05:21 2015 -0400 nfsidmap: make sure give arguments are valid Detect when a given argument is invalid. Log the error and exit gracefully Signed-off-by: Steve Dickson commit c08f1382e5609bc686c3df95ff1e267804b37a61 Author: Kinglong Mee Date: Mon Apr 6 17:00:44 2015 -0400 exportfs: add missing comma for exports ent When using pnfs with "fsid=0", exportfs prints error as, $ exportfs -a exportfs: /var/lib/nfs/etab:1: unknown keyword "no_pnfsfsid=0" Commit cdd16bef98 ("nfs-utils: add support for the "pnfs" export option") miss the comma after "pnfs"/"on_pnfs" operation. Reviewed-by: Christoph Hellwig Signed-off-by: Kinglong Mee Signed-off-by: Steve Dickson commit cdd16bef988a36868a7105c14d4665a53c1c5481 Author: Christoph Hellwig Date: Thu Apr 2 11:49:42 2015 -0400 nfs-utils: add support for the "pnfs" export option This goes along with the patch just sent to Bruce to make pnfs support conditional. Signed-off-by: Christoph Hellwig Signed-off-by: Steve Dickson commit d1f6583a5ff32711a1da1d4a13a29a5700f63504 Author: Ben Hutchings Date: Thu Apr 2 11:43:33 2015 -0400 mount.nfs.man, nfs.man: Update distinction between fstypes From: Ben Hutchings this is a resync of the man page updates in the Debian package with mainline nfs-utils. Acked-By: J. Bruce Fields Signed-off-by: Steve Dickson commit 54bf943f683f3fcea379b94f36a12701e594e7b9 Author: Cyril Brulebois Date: Thu Apr 2 11:39:43 2015 -0400 nfs-utils: cross-reference nfsd.7 from nfsd.8 and vice versa From: Cyril Brulebois It'd be nice if one could notice nfsd(7) when reading nfsd(8) and the other way round, without having to have to resort to dpkg -L $pkg to figure out what documentation is available. Acked-By: J. Bruce Fields Signed-off-by: Steve Dickson commit 4a1ad4aa3028d26d830d9a9003ff9e3337b0e0d5 Author: Scott Mayhew Date: Thu Apr 2 11:15:15 2015 -0400 mountd: Enable all auth flavors on pseudofs exports With the current mountd code it's possible to craft exports in such a manner that clients will be unable to mount exports that they *should* be able to mount. Consider the following example: /foo *(rw,insecure,no_root_squash,sec=krb5p) /bar client.example.com(rw,insecure,no_root_squash) Initially, client.example.com will be able to mount the /foo export using sec=krb5p, but attempts to mount /bar using sec=sys will return EPERM. Once the nfsd.export cache entry expires, client.example.com will then be able to mount /bar using sec=sys but attempts to mount /foo using sec=krb5p will return EPERM. The reason this happens is because the initial nfsd.export cache entry is actually pre-populated by nfsd_fh(), which is the handler for the nfsd.fh cache, while later cache requests (once the initial entry expires) are handled by nfsd_export(). These functions have slightly different logic in how they select a v4root export from the cache -- nfsd_fh() takes last matching v4root export it finds, while nfsd_export() (actually lookup_export()) takes the first. Either way it's wrong because the client should be able to mount both exports. Both rfc3503bis and rfc5661 say: A common and convenient practice, unless strong security requirements dictate otherwise, is to make the entire pseudo file system accessible by all of the valid security mechanisms. ...so lets do that. Acked-by: J. Bruce Fields Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 5cbb78bf4bd871168ada54b0fd4b42b26c959f3e Author: NeilBrown Date: Thu Mar 26 11:27:27 2015 -0400 mount: improve error message when statd cannot be started. If you try to mount and NFSv3 filesystem, and statd is not running and cannot be started (maybe rpcbind isn't running either), the error message is: mount.nfs: rpc.statd is not running but is required for remote locking. mount.nfs: Either use '-o nolock' to keep locks local, or start statd. mount.nfs: an incorrect mount option was specified That last line is incorrect and misleading: no incorret mount option was specified. This line comes from mount_error() in error.c. In this case that function doesn't really need to provide any more information. So introduce a concention that EALREADY means an error message has already been printed, and use it to suppress that message. Signed-off-by: NeilBrown Signed-off-by: Steve Dickson commit 81aed045d3057a44b3aabf946bad2894be64dda7 Author: Kinglong Mee Date: Thu Mar 26 11:23:17 2015 -0400 blkmapd: Make sure device root contains valid device id When testing pnfs in virtual linux based on VirtualBox, blkmapd gets dev_root->len == 0, which causes it Segmentation fault. Reviewed-by: Christoph Hellwig Signed-off-by: Kinglong Mee Signed-off-by: Steve Dickson commit 9128433947479d8eb9ea08fae2b79670d30b5cfa Author: Steve Dickson Date: Thu Mar 19 11:39:25 2015 -0400 nfs-blkmap.service: add EnvironmentFile directive Fixes: https://bugzilla.linux-nfs.org/show_bug.cgi?id=281 Signed-off-by: Steve Dickson commit 8b7bc02a411019fce9ed069a2d18f556c1009150 Author: Zbigniew Jędrzejewski-Szmek Date: Thu Mar 19 11:37:52 2015 -0400 units: nuke nfs-blkmap.target It seems that the purpose of nfs-blkmap.target was to enable and disable nfs-blkmap.service. This can be done directly by adding an [Install] section in nfs-blkmap.service. The downside of the previous arrangement, apart from the unnecessary complexity, was a warning during boot: [ INFO ] PNFS blkmaping enablement. is not active. [DEPEND] Dependency failed for pNFS block layout mapping daemon. https://bugzilla.redhat.com/show_bug.cgi?id=1088665 Signed-off-by: Zbigniew J?drzejewski-Szmek Signed-off-by: Steve Dickson commit 997148c3d87d4a59a0e542c4fbe77fefc6489e56 Author: Martin Pitt Date: Thu Mar 19 11:33:49 2015 -0400 systemd: Relax dependencies of services Stop depending on basic.target in the daemons which still do; i. e. add DefaultDependencies=no. This makes it possible to run NFS during early boot, and helps if you e. g. have /var on NFS. We don't require much else than local-fs. Acked-by: Zbigniew Jędrzejewski-Szmek Signed-off-by: Steve Dickson commit 1e41488f428cd36b200b48b84d31446e38dfdc50 Author: Martin Pitt Date: Thu Mar 19 11:16:02 2015 -0400 systemd: Order NFS server before client This makes mounting NFS shares from localhost work reliably, as you need to start the server before attempting (client) mounts, and conversely on shutdown need to unmount all shares before stopping the server to avoid hangs. Signed-off-by: Steve Dickson commit ed3e519daac300973cfc8697113cb41e584bcac4 Author: Steve Dickson Date: Tue Mar 3 13:19:29 2015 -0500 systemd: Have rpc-statd-notify.service Require network.target Its been reported that having the rpc-statd-notify service depend on network.target instead network-online.target decrease boot times as much as 10 seconds on some installs Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1183293 Signed-off-by: Steve Dickson Reported-by: Eric Work commit e24ba8a24d3ebfa6388a74523e61f2cad179c0c2 Author: Scott Mayhew Date: Wed Mar 4 08:11:35 2015 -0500 mountstats: Normalize the mountpoints passed on the command line. Normalize the mountpoints passed on the command line so that commands like 'mountstats /mnt/' succeed rather than fail. Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 7e81d45c4f7a4bbbfe16adb715397a2351526eaf Author: Scott Mayhew Date: Wed Mar 4 08:09:58 2015 -0500 mountstats: Fix exit code handling When I changed mountstats to use the argparse module, I neglected to make the subcommand functions return any values even though main() was looking for them. Also removed SystemExit from the except clause at the end of the program since it was causing the program to always exit with a status of 1. Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 578e44bd1778d70f677a3efedb49a072ee3483ec Author: Aurélien Chabot Date: Thu Feb 26 14:30:50 2015 -0500 configure.ac: Fix systemd autotools activation option The option to activate the install of systemd service files was never taken into account. Signed-off-by: Steve Dickson commit 484be028e408901bc54e76859c17713a2d5a2252 Author: Scott Mayhew Date: Thu Feb 26 14:23:53 2015 -0500 mountd: Fix memory leak in getexportent Valgrind shows that the memory allocated for ee.e_hostname in getexportent() is being leaked. While there _is_ a call to xfree(), by the time it gets called the leak's already happened. Moving the xfree() call so that it occurs before the assignment that overwrites ee fixes this. Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 810423415dd1a2b7275b3abf294e6a69951614a1 Author: Carlos O'Donell Date: Thu Feb 26 14:13:26 2015 -0500 rpc.statd: Avoid passing unregistered socket to svc_getreqset rpc.statd may crash if it receives both a notification reply and a client connection at the same time. It crashes because it adds sockfd to SVC_FDSET and that violates the API contract. The SVC_FDSET is to be considered read-only and must not be modified by user code. The daemon modifies it for expediency to avoid having to maintain two distinct fd lists and select on each one. It is a practical choice that makes sense. Thus, if a notification reply arrives by itself everything works, or if a client connection arrives by itself everything works. Both must arrive at the same time for sockfd to be set in SVC_FDSET and to be processed by svc_getreqset because more than one of readfds is ready. It is the processing by svc_getreqset that will crash when it finds an unregistered fd in the list that doesn't correlate to any of the internal book keeping done by the library. At present the glibc SunRPC library will crash, but TIRPC does not (it is robust against invalid API usage in this case). However, future RPC libraries may be implemented differently, and the questionable API usage should be fixed. The simplest fix is for process_reply to *clear* sockfd from the ready-to-read fds, since it was never registered with xprt_register. This works because the code always calls process_reply before handing the fd set to the RPC layer for processing. Compile-tested on x86_64 against master. Signed-off-by: Carlos O'Donell Signed-off-by: Steve Dickson commit 0f1f4e7278c1bc93d54da1026dfe484f27bcd873 Author: NeilBrown Date: Thu Feb 26 14:10:35 2015 -0500 exports.man: improve documentation of 'nohide' and 'crossmnt' - note that 'nohide' is irrelevant for NFSv4 - note that children on a 'crossmnt' filesystem cannot be unexported - note that 'nocrossmnt' is a valid option, but probably not useful. Signed-off-by: NeilBrown Signed-off-by: Steve Dickson commit 1e4a4c3816ca5a1e1a345117a201d9cc6c468beb Author: NeilBrown Date: Wed Feb 25 16:47:56 2015 -0500 mountd: fix next_mnt handling for "/" If the (exported) path passed to next_mnt() is simply "/", next_mnt() will not report any children, as none start with "/" followed by a '/'. So make a special case for strlen(p)==1. In that case, return all children. This gives correct handling if only "/" is exported. Signed-off-by: NeilBrown Signed-off-by: Steve Dickson commit cb80ee2db749a19814d1851a05c6bfa81f98d71d Author: Steve Dickson Date: Thu Feb 19 16:03:30 2015 -0500 Fixed a few typos in the mountstats(8) manpage Acked-by: Scott Mayhew Signed-off-by: Steve Dickson commit 650633d4e956dc6b628da30c868e39fba76a0b29 Author: Steve Dickson Date: Mon Feb 9 08:54:54 2015 -0500 rpc-statd-notify: Don't wait for the network to come up rpc-statd-notify only needs to wait for the network interface to be configured not to be connected since it forks into background and will wait 15mins for the network to come up. This decrease boot times when networks are not and will not be connected. Signed-off-by: Steve Dickson Reported-By: Eric Work commit 17a3e5bffb7110d46de1bf42b64b90713ff5ea50 Author: Chris Mayo Date: Sun Feb 1 12:03:46 2015 -0500 statd: Fix test for foreground mode daemon_init parameter has the opposite sense to code removed in commit 7addf9d Signed-off-by: Chris Mayo Signed-off-by: Steve Dickson