commit 3a9b34dd09020785798cd742798efe5edd6440f6 Author: NeilBrown Date: Wed Apr 19 10:43:15 2023 -0400 mountd: don't advertise krb5 for v4root when not configured. If /etc/krb5.keytab does not exist, then krb5 cannot work, so advertising it as an option for v4root is pointless. Since linux commit 676e4ebd5f2c ("NFSD: SECINFO doesn't handle unsupported pseudoflavors correctly") this can result in an unhelpful warning if the krb5 code is not built, or built as a module which is not installed. [ 161.668635] NFS: SECINFO: security flavor 390003 is not supported [ 161.668655] NFS: SECINFO: security flavor 390004 is not supported [ 161.668670] NFS: SECINFO: security flavor 390005 is not supported So avoid advertising krb5 security options when krb5.keytab cannot be found. Note that testing for /etc/krb5.keytab is what we already do in a couple of systemd unit file to determine if krb5 is enabled. Link: https://lore.kernel.org/linux-nfs/20170104190327.v3wbpcbqtfa5jy7d@codemonkey.org.uk/ Signed-off-by: NeilBrown Signed-off-by: Steve Dickson commit 04ad483198b6179fb4fbfad58b4a234e2f807ee8 Author: Richard Weinberger Date: Tue Apr 18 15:34:59 2023 -0400 Add fsid systemd service file Co-developed-by: Chris Chilvers Signed-off-by: Richard Weinberger Signed-off-by: Steve Dickson commit 6fd2732d9b82060de2653b8e61822485514221b2 Author: Richard Weinberger Date: Tue Apr 18 15:32:32 2023 -0400 export: Add fsidd The fsidnum daemon offers a local UNIX domain socket interface for all NFS userspace to query the reexport database. Currently fsidd just uses the SQlite backend. fsidd serves also as an example on how to implement more complex backends for the load balancing use case. Signed-off-by: Richard Weinberger Signed-off-by: Steve Dickson commit ba21dbb2fa72b8bab3b42274b265e0512c9bc7f7 Author: Richard Weinberger Date: Tue Apr 18 15:23:32 2023 -0400 reexport: Add sqlite backend The reexport database code is designed to support multiple ways to store the state. So far only SQlite is implemented. Signed-off-by: Richard Weinberger Signed-off-by: Steve Dickson commit 6f8cf3a45e230800305b6e2935bb9362f8399529 Author: Richard Weinberger Date: Tue Apr 18 15:20:42 2023 -0400 exports.man: Document reexport= option Signed-off-by: Richard Weinberger Signed-off-by: Steve Dickson commit 350605533bacd885b216844d6a2b50ed6c6f3f76 Author: Richard Weinberger Date: Tue Apr 18 15:19:02 2023 -0400 export: Uncover NFS subvolume after reboot When a re-exporting NFS server reboots, none of the subvolumes are present. This is because the NFS client code will mount only upon first access. So, when we see an NFS handle with an yet unknown fsidnum, lookup in the reexport database for it. If one is found, stat the path to trigger the mount. That way stale NFS handles are avoided after a reboot. Signed-off-by: Richard Weinberger Signed-off-by: Steve Dickson commit ccf3ae701a69785c85a0d1f505f603ca2b6044e5 Author: Richard Weinberger Date: Tue Apr 18 15:16:07 2023 -0400 export: Wireup reexport mechanism Detect the case when a NFS share is re-exported and assign an fsidnum to it. The fsidnum is read (or created) from the reexport database. Signed-off-by: Richard Weinberger Signed-off-by: Steve Dickson commit d214e3aace78ba535ba6dc447938d600feb0f63b Author: Richard Weinberger Date: Tue Apr 18 15:11:31 2023 -0400 Implement reexport= export option When re-exporting a NFS volume it is mandatory to specify either a UUID or numerical fsid= option because nfsd is unable to derive an identifier on its own. For NFS cross mounts this becomes a problem because nfsd also needs an identifier for every crossed mount. A common workaround is stating every single subvolume in the exports list too. But this defeats the purpose of the crossmnt option and is tedious. This is where the reexport= tries to help. It offers various strategies to automatically derive a identifier for NFS volumes and sub volumes. Currently two strategies are implemented: 1. auto-fsidnum In this mode mountd/exportd will create a new numerical fsid for a NFS volume and subvolume. The numbers are stored in a database, via fsidd, such that the server will always use the same fsid. The entry in the exports file allowed to skip the fsid= option but stating a UUID is allowed, if needed. This mode has the obvious downside that load balancing is by default not possible since multiple re-exporting NFS servers would generate different ids. It is possible if all load balancers use the same database. This can be achieved by using nfs-utils' fsidd and placing it's sqlit database on a network share which supports file locks or by implementing your own fsidd which is able to provide consistent fsids across multiple re-exporting nfs servers. 2. predefined-fsidnum This mode works just like auto-fsidnum but does not generate ids for you. It helps in the load balancing case. A system administrator has to manually maintain the database and install it on all re-exporting NFS servers. If you have a massive amount of subvolumes this mode will help because you don't have to bloat the exports list. Signed-off-by: Richard Weinberger Signed-off-by: Steve Dickson commit 878674b3f56da99d53c75246dc7d9b18efba7e63 Author: Richard Weinberger Date: Tue Apr 18 15:04:18 2023 -0400 Add reexport helper library Add some helper functions which will be used by the reexport mechanism to create and find fsidnums for re-exported NFS shares. Signed-off-by: Richard Weinberger Signed-off-by: Steve Dickson commit b5e4539f7304c9cb60e03f5288f52b58d4b68e8b Author: Chuck Lever Date: Sat Apr 15 10:09:26 2023 -0400 nfs(5): Document the new "xprtsec=" mount option More information about RPC-with-TLS and some brief set-up guidance are to be provided in a separate man page in Section 7. Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit 21d35ad4f25e6dcdc919ceb01744b0a9d97b37ba Author: Chuck Lever Date: Sat Apr 15 10:05:58 2023 -0400 exports(5): Describe the xprtsec= export option Cc: Rick Macklem Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit ab6d2c6b88bce4ad4772b620b0caa027d959f205 Author: Chuck Lever Date: Sat Apr 15 10:03:42 2023 -0400 exports: Add an xprtsec= export option The overall goal is to enable administrators to require the use of transport layer security when clients access particular exports. This patch adds support to exportfs to parse, display, and push into the kernel a new xprtsec= export option. Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit e8d23171e56cea17a357c97b9cc0d3e392f759ec Author: Chuck Lever Date: Sat Apr 15 09:57:29 2023 -0400 libexports: Fix whitespace damage in support/nfs/exports.c Clean up. Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit 4c412a944a27f9f516694722970c0bf3b80be01b Author: NeilBrown Date: Wed Apr 5 12:23:24 2023 -0400 nfsd.man: fix typo in section on "scope". The missing "-" means that "-S" isn't mentioned at all. Signed-off-by: NeilBrown Signed-off-by: Steve Dickson commit eab5e3852cf7f48ffdb223f8e1175350e91a2e7d Author: NeilBrown Date: Wed Apr 5 12:21:39 2023 -0400 mount.nfs: always include mountpoint or spec if error messages. If you try to mount from a server that is inaccessible you might get an error like: mount.nfs: No route to host This is OK when running "mount" interactively, but hardly useful when found in system logs. This patch changes mount_error() to always included at least one of mount_point and spec in any error message. Signed-off-by: NeilBrown Signed-off-by: Steve Dickson commit c0bf5895173972a0b86633c7d61d0de46798bbe1 Author: Richard Weinberger Date: Wed Apr 5 12:16:24 2023 -0400 export: Fix rootdir corner case in next_mnt() Currently the following setup causes failure: 1. /etc/exports: / *(rw,crossmnt,no_subtree_check,fsid=root) 2. /etc/nfs.conf: [exports] rootdir=/nfs_srv 3. Mounts: /root/fs1.ext4 on /nfs_srv type ext4 (rw,relatime) /root/fs2.ext4 on /nfs_srv/fs2 type ext4 (rw,relatime) 4. On the client: $ ls /nfs_client/fs2 ls: cannot open directory '/nfs_client/fs2': Stale file handle The problem is that next_mnt() misses the corner case that every mount is a sub-mount of "/". So it fails to see that /nfs_srv/fs2 is a mountpoint when the client asks for fs2 it and as consequence the crossmnt mechanism fails. Signed-off-by: Richard Weinberger Signed-off-by: Steve Dickson commit 608591ddf1ee59c4dda82ceca3f27c90486c5618 Author: Yongcheng Yang Date: Wed Apr 5 12:11:53 2023 -0400 nfsmount.conf: Fix typo of the attribute name Signed-off-by: Yongcheng Yang Signed-off-by: Steve Dickson commit a746c35822e557766d1871ec976490a71e6962d9 Author: Zhi Li Date: Wed Apr 5 12:08:10 2023 -0400 rpcdebug: avoid buffer underflow if read() returns 0 Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2176740 Signed-off-by: Zhi Li Signed-off-by: Steve Dickson commit 5faf98a62843d1cda2a0fe15e0878fa1281e42b8 Author: Joachim Falk Date: Tue Jan 10 09:55:59 2023 -0500 systemd: Don't degrade system state for nfs-clients when krb5 keytab present but not containing the nfs/ principal The nfs-client.target requires the auth-rpcgss-module.service, which in turn requires the rpc-svcgssd.service. However, the rpc.svcgssd daemon is unnecessary for an NFS client, even when using Kerberos security. Moreover, starting this daemon with its default configuration will fail when no nfs/@REALM principal is in the Kerberos keytab. Thus, resulting in a degraded system state for NFS client configurations without nfs/@REALM principal in the Kerberos keytab. However, this is a perfectly valid NFS client configuration as the nfs/@REALM principal is not required for mounting NFS file systems. This is even the case when Kerberos security is enabled for the mount! Installing the gssproxy package hides this problem as this disables the rpc-svcgssd.service. Link: http://bugs.debian.org/985002 Link: https://salsa.debian.org/kernel-team/nfs-utils/-/merge_requests/23 Signed-off-by: Joachim Falk Signed-off-by: Steve Dickson commit fa12f380fd3c2aa2a6330f1a01100ea9a03b1521 Author: Steve Dickson Date: Wed Jan 4 12:06:32 2023 -0500 Covscan Scan: Fixed a couple CLANG_WARNINGs Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2151971 Signed-off-by: Steve Dickson commit 631c6aa34aae7328dc297210fd2de2d5364c697f Author: Steve Dickson Date: Wed Jan 4 12:04:09 2023 -0500 Covscan Scan: Wrong Check of Return Value Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2151966 Signed-off-by: Steve Dickson commit 2c0b524983925ebd6b8ab8b7952fba2aea41c94d Author: Khem Raj Date: Tue Jan 10 09:42:00 2023 -0500 Replace statfs64 with statfs autoconf AC_SYS_LARGEFILE is used by configure to add needed defines when needed for enabling 64bit off_t, therefore replacing statfs64 with statfs should be functionally same. Additionally this helps compiling with latest musl where 64bit LFS functions like statfs64 and friends are now moved under _LARGEFILE64_SOURCE feature test macro, this works on glibc systems because _GNU_SOURCE macros also enables _LARGEFILE64_SOURCE indirectly. This is not case with musl and this latest issue is exposed. Signed-off-by: Khem Raj Signed-off-by: Steve Dickson commit cdbef4e97a1cbc68cbaf16ba57d71858d2c69973 Author: Jeff Layton Date: Tue Jan 10 09:37:25 2023 -0500 nfs-utils: Don't allow junction tests to trigger automounts JianHong reported some strange behavior with automounts on an nfs server without an explicit pseudoroot. When clients issued a readdir in the pseudoroot, automounted directories that were not yet mounted would show up even if they weren't exported, though the clients wouldn't be able to do anything with them. The issue was that triggering the automount on a directory would cause the mountd upcall to time out, which would cause nfsd to include the automounted dentry in the readdir response. Eventually, the automount would work and report that it wasn't exported and subsequent attempts to access the dentry would (properly) fail. We never want mountd to trigger an automount. The kernel should do that if it wants to use it. Change the junction checks to do an O_PATH open and use fstatat with AT_NO_AUTOMOUNT. Cc: Chuck Lever Link: https://bugzilla.redhat.com/show_bug.cgi?id=2148353 Link: https://bugzilla.kernel.org/show_bug.cgi?id=216777 Reported-by: JianHong Yin Signed-off-by: Jeff Layton Signed-off-by: Steve Dickson commit 0f82c2b08f972e4a2190bf78120fc32326e838c1 Author: Yegor Yefremov Date: Mon Dec 5 15:54:36 2022 -0500 Fix typos in the root folder Also remove double spaces. Signed-off-by: Yegor Yefremov Signed-off-by: Steve Dickson commit ca5b0e7e4d41d93483427390d6d5e031b0b7c6af Author: Joachim Falk Date: Mon Dec 5 15:52:53 2022 -0500 auth-rpcgss-module.service: Don't fail inside linux container. Only try to load the auth_rpcgss kernel module if we are not executing inside a Linux container. Otherwise, the auth-rpcgss-module service will fail inside a Linux container as the loading of kernel modules is forbidden for the container. Thus, the "/sbin/modprobe -q auth_rpcgss" call will fail even if the auth_rpcgss kernel module is already loaded. This situation occurs when the container host has already loaded the auth_rpcgss kernel module to enable kerberized NFS service for its containers. This behavior has been tested with kmod up to version 30+20220630-3 (current in bookworm as of 2022-09-20). Bug-Debian: http://bugs.debian.org/985000 Discussion-Debian: https://salsa.debian.org/kernel-team/nfs-utils/-/merge_requests/7 Signed-off-by: Joachim Falk Signed-off-by: Steve Dickson commit 9466df03394a48cc08aa4bcdcfda3fe6cd074468 Author: Salvatore Bonaccorso Date: Mon Dec 5 15:51:34 2022 -0500 systemd: Apply all sysctl settings through udev rule when NFS-related modules are loaded sysctl settings (e.g. /etc/sysctl.conf and others) are normally loaded once at boot. If the module that implements some settings is no yet loaded, those settings don't get applied. Various NFS modules support various sysctl settings. If they are loaded after boot, they miss out. Add a new udev rule configuration to udev/rules.d/60-nfs.rules to apply the relevant settings when the modules are loaded. Placing it in the systemd directory similarly as the choice for the original commit afc7132dfb21 ("systemd: Apply all sysctl settings when NFS-related modules are loaded"). Link: https://lore.kernel.org/linux-nfs/Y1KoKwu88PulcokW@eldamar.lan/ Link: https://bugs.debian.org/1022172 Link: https://bugs.debian.org/1024082 Suggested-by: Marco d'Itri Signed-off-by: Salvatore Bonaccorso Signed-off-by: Steve Dickson commit d8d29f851993f67c053d9712e92244b2f53c4f65 Author: Salvatore Bonaccorso Date: Mon Dec 5 15:37:32 2022 -0500 Revert "systemd: Apply all sysctl settings when NFS-related modules are loaded" This reverts commit afc7132dfb212ac1f676a5ac36d29a9e06325645. The approach caused problems with sysctl from busybox and with kmod as reported in Debian (https://bugs.debian.org/1024082). Signed-off-by: Salvatore Bonaccorso Signed-off-by: Steve Dickson commit 5bab9cbc9ff3d071f1e297d7bfff70f40ca9e78e Author: Salvatore Bonaccorso Date: Mon Dec 5 15:30:55 2022 -0500 Revert "modprobe: protect against sysctl errors" This reverts commit 5e60e38aa4ba251ef66610514be5f45c41519e0f. This is part of the full revert of adding support via modprobe.d configuration to set sysctl settings of NFS-related modules when loading the modules. The approach caused problems with sysctl from busybox and with kmod as reported in Debian (https://bugs.debian.org/1024082). Signed-off-by: Salvatore Bonaccorso Signed-off-by: Steve Dickson commit 89ea291577cf3b01ec20883c9d0a8a3c8c68d9b2 Author: Salvatore Bonaccorso Date: Mon Dec 5 15:28:25 2022 -0500 Revert "configure: make modprobe.d directory configurable This reverts commit 7d76dd2e6f09a141eb6303b7343baa5c4f9c85ad. This is part of the full revert of adding support via modprobe.d configuration to set sysctl settings of NFS-related modules when loading the modules. The approach caused problems with sysctl from busybox and with kmod as reported in Debian (https://bugs.debian.org/1024082). Signed-off-by: Salvatore Bonaccorso Signed-off-by: Steve Dickson commit 580ac005d11ddb9a9622e380ba8e947ad743a38f Author: NeilBrown Date: Mon Nov 21 14:24:00 2022 -0500 nfsd: allow server scope to be set with config or command line. NFSv4.1 and later require the server to report a "scope". Servers with the same scope are expected to understand each other's state ids etc, though may not accept them - this ensure there can be no misunderstanding. This is helpful for migration. Servers with different scope are known to be different and if a server appears to change scope on a restart, lock recovery must not be attempted. It is important for fail-over configurations to have the same scope for all server instances. Linux NFSD sets scope to host name. It is common for fail-over configurations to use different host names on different server nodes. So the default is not good for these configurations and must be over-ridden. As discussed in https://github.com/ClusterLabs/resource-agents/issues/1644 some HA management tools attempt to address this with calls to "unshare" and "hostname" before running "rpc.nfsd". This is unnecessarily cumbersome. This patch adds a "-S" command-line option and nfsd.scope config value so that the scope can be set easily for nfsd. Signed-off-by: NeilBrown Signed-off-by: Steve Dickson commit 46a114733ad67ca8ada5a42bb48b88379e9346db Author: Yegor Yefremov Date: Sat Nov 19 13:29:22 2022 -0500 README: fix mount command Without device specification, mount tries to mount an entry from the /etc/fstab file. Hence, specify target "nfsd" to make this command executable from the command line. Signed-off-by: Yegor Yefremov Signed-off-by: Steve Dickson commit fd7b023a8e5bdde184a17403d600db67c2557a7d Author: Yegor Yefremov Date: Sat Nov 19 13:27:59 2022 -0500 .gitignore: ignore ctags generated file From: Yegor Yefremov Signed-off-by: Yegor Yefremov Signed-off-by: Steve Dickson commit e9cb326d4e94c3d27273390bbd05dc799a09c15b Author: Yegor Yefremov Date: Sat Nov 19 13:20:46 2022 -0500 README: fix typos and grammar Also remove unneeded spaces. Signed-off-by: Yegor Yefremov Signed-off-by: Steve Dickson commit 9565ab64e60f8282967e138f43c6057562dc5c27 Author: zhanchengbin Date: Sat Nov 19 11:50:07 2022 -0500 nfs-blkmapd: PID file read by systemd failed When started nfs-blkmap.service, the PID file can't be opened, The cause is that the child process does not create the PID file before the systemd reads the PID file. Adding "ExecStartPost=/bin/sleep 0.1" to /usr/lib/systemd/system/nfs-blkmap.service will probably solve this problem, However, there is no guarantee that the above solutions are effective under high cpu pressure.So replace the daemon function with the fork function, and put the behavior of creating the PID file in the parent process to solve the above problems. Signed-off-by: zhanchengbin Signed-off-by: Zhiqiang Liu Signed-off-by: Steve Dickson commit d4de031fbb2d797ec9e738deda50feec97db7593 Author: Steve Dickson Date: Fri Oct 28 10:56:36 2022 -0400 nfsd.man: Explain that setting nfsv4=n turns off all v4 versions Update the man page to explicitly say setting nfsv4=n turns off all v4 versions Signed-off-by: Steve Dickson commit 66ed48f9a4db3e8dea875dd8a4cc8a2af718a301 Author: Dave Wysochanski Date: Mon Oct 24 13:41:06 2022 -0400 nfsiostat: Handle both readahead counts for statsver >= 1.2 Later kernel versions convert NFS readpages to readahead so update the counts accordingly. Signed-off-by: Dave Wysochanski Signed-off-by: Steve Dickson commit ea536a2e641664c8ea439e5e571e757785f587c9 Author: Zhi Li Date: Mon Oct 24 13:31:41 2022 -0400 mount.nfs: fix NULL pointer derefernce in nfs_parse_square_bracket In function nfs_parse_square_bracket, hostname could be NULL, dereferencing it in free(*hostname) may cause an unexpected segfault. Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2136807 Signed-off-by: Zhi Li Signed-off-by: Steve Dickson commit c1c35487aba2cec828d9b8a1be9043000beadea5 Author: Lixiaokeng Date: Mon Oct 24 13:00:50 2022 -0400 blkmapd: fix coredump in bl_add_disk The serial->data is not malloced separately (just part of the serial), so it can't be freed. The bl_serial has its own free function. Use it. Signed-off-by: Lixiaokeng Signed-off-by: Zhiqiang Liu Signed-off-by: Steve Dickson commit 809e8174c12e58ee5913e594a5548fe131240f71 Author: Frank Sorenson Date: Mon Oct 17 14:52:03 2022 -0400 Allow 'debug' configuration option to accept '0' and '1' In the example /etc/nfs.conf file, most sections include a commented-out 'debug = 0' line, suggesting that '0' is the default. In addition, the manpages for some of the utilities state that debugging can be enabled by setting 'debug = 1' in the nfs.conf file. However, neither '0' nor '1' is accepted as a valid option for 'debug' while parsing the nfs.conf file. Add '0' and '1' to the valid strings when parsing 'debug', with '0' not changing any debugging settings, and '1' enabling all debugging. Signed-off-by: Frank Sorenson Signed-off-by: Steve Dickson commit 77c22f57cdc964f4ca88f5d6f9560317a3b9f1d1 Author: Sam James Date: Tue Sep 27 10:07:08 2022 -0400 Fix more function prototypes regex.c:545:43: error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes] struct trans_func *libnfsidmap_plugin_init() ^ void See: 167f2336b06e1bcbf26f45f2ddc4a535fed4d393 Signed-off-by: Sam James Signed-off-by: Steve Dickson commit 844d3ad5376603bc9c205a6084d38a2d25146179 Author: Giulio Benetti Date: Tue Sep 20 15:35:42 2022 -0400 configure.ac: allow to disable nfsrahead tool This allows to make libmount not mandatory but depending on nfsrahead since it only requires it. This is useful when cross-compiling because in that case we need rpcgen only built for host but not nfsrahead that also require libmount. So this reduces the dependencies for host building. Signed-off-by: Giulio Benetti Signed-off-by: Steve Dickson commit 0ebb50c91e26139958619f11f7ad932567f17c05 Author: zhanchengbin Date: Tue Sep 13 12:06:37 2022 -0400 nfs-blkmapd: Fix the error status when nfs-blkmapd stops The systemctl stop nfs-blkmap.service will sends the SIGTERM signal to the nfs-blkmap.service first.If the process fails to be stopped, it sends the SIGKILL signal again to kill the process. However, exit(1) is executed in the SIGTERM processing function of nfs-blkmap.service. As a result, systemd receives an error message indicating that nfs-blkmap.service failed. "Active: failed" is displayed when the systemctl status nfs-blkmap.service command is executed. Reviewed-by: Christoph Hellwig Signed-off-by: zhanchengbin Signed-off-by: Steve Dickson commit 627c95b2b853161b359095e7fdf05d3b07d51379 Author: Giulio Benetti Date: Tue Sep 13 11:56:43 2022 -0400 nfsrahead: fix order on static linking -lmount must preceed -lblkid and to obtain this let's add in configure.ac: PKG_CHECK_MODULES([LIBMOUNT], [mount]) and in tools/nfsrahead/Makefile.am let's substitute explicit `-lmount` with: $(LIBMOUNT_LIBS) This way all the required libraries will be present and in the right order when static linking. Reviewed-by: Petr Vorel Signed-off-by: Giulio Benetti Signed-off-by: Steve Dickson commit 167f2336b06e1bcbf26f45f2ddc4a535fed4d393 Author: Khem Raj Date: Tue Sep 13 11:44:05 2022 -0400 Fix function prototypes Clang is now erroring out on functions with out parameter types Fixes errors like error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes] Signed-off-by: Khem Raj Signed-off-by: Steve Dickson commit 896946e3c7f8ec1a02d4dc3a039e6cbbd2f611a9 Author: Khem Raj Date: Tue Sep 13 11:42:03 2022 -0400 mountd: Check for return of stat function simplify the check, stat() return 0 on success -1 on failure Fixes clang reported errors e.g. | v4clients.c:29:6: error: logical not is only applied to the left hand side of this comparison [-Werror,-Wlogical-not-parentheses] | if (!stat("/proc/fs/nfsd/clients", &sb) == 0 || | ^ ~~ Signed-off-by: Khem Raj Signed-off-by: Steve Dickson