commit bdf9a974fce8b12da6d65b47841b3ced2da4868d Author: Olga Kornievskaia Date: Fri Aug 16 09:46:33 2024 -0400 rpcdebug: fix memory allocation size Memory isn't allocated enough to hold the null terminator. Valgring complains about invalid memory access: [aglo@localhost rpcdebug]$ valgrind ./rpcdebug ==222602== Memcheck, a memory error detector ==222602== Copyright (C) 2002-2024, and GNU GPL'd, by Julian Seward et al. ==222602== Using Valgrind-3.23.0 and LibVEX; rerun with -h for copyright info ==222602== Command: ./rpcdebug ==222602== ==222602== Invalid write of size 1 ==222602== at 0x4871218: strcpy (vg_replace_strmem.c:564) ==222602== by 0x400CA3: main (rpcdebug.c:62) ==222602== Address 0x4a89048 is 0 bytes after a block of size 8 alloc'd ==222602== at 0x4868388: malloc (vg_replace_malloc.c:446) ==222602== by 0x400C77: main (rpcdebug.c:57) ==222602== ==222602== Invalid read of size 1 ==222602== at 0x48710E4: __GI_strlen (vg_replace_strmem.c:506) ==222602== by 0x492FA7F: __vfprintf_internal (vfprintf-internal.c:1647) ==222602== by 0x49302F3: buffered_vfprintf (vfprintf-internal.c:2296) ==222602== by 0x492F21F: __vfprintf_internal (vfprintf-internal.c:1377) ==222602== by 0x491BC93: fprintf (fprintf.c:32) ==222602== by 0x40103F: main (rpcdebug.c:100) ==222602== Address 0x4a89048 is 0 bytes after a block of size 8 alloc'd ==222602== at 0x4868388: malloc (vg_replace_malloc.c:446) Signed-off-by: Olga Kornievskaia Signed-off-by: Steve Dickson commit b0b84790630ef4257e54e5598f436649b09d10d4 Author: Matthew John Date: Sat Jul 27 11:57:02 2024 -0400 nfsmount.conf: Fix typo/syntax issues Comments about noatime and fix minor whitespace changes Signed-off-by: Matthew John Signed-off-by: Steve Dickson commit 92995e0d38dc00e930c562cf936220f83c09d082 Author: Paulo Andrade Date: Tue Jul 23 12:03:30 2024 -0400 rpc-gssd.service has status failed (due to rpc.gssd segfault) Ensure strings are not NULL before doing a strdup() in error path. Fixes: https://issues.redhat.com/browse/RHEL-43286 Signed-off-by: Steve Dickson commit 131ec613bab84b7894e428375cc360bb82a336a3 Author: Steve Dickson Date: Tue Jul 23 12:06:28 2024 -0400 nfsidmap: Fix a memory leak Reported-by: Zhang Yaqi Signed-off-by: Steve Dickson commit b76dbaa48f7c239accb0c2d1e1d51ddd73f4d6be Author: Philipp Tekeser-Glasz Date: Mon Jun 17 15:34:20 2024 -0500 exports(5): update and correct information about subdirectory exports Document that the default option is now no_subtree_check and add a reference to the Subdirectory Exports section. Add a warning to the Subdirectory Exports section that it is possible to also access files on other filesystems based on a previous discussion. Fix a typo in the Subdirectory Exports section. The correct option to prevent access to files outside the subdirectory is subtree_check, not no_subtree_check. Signed-off-by: Philipp Tekeser-Glasz Signed-off-by: Steve Dickson commit 94b48ccc0b0304809027fcead03343f4c716c4f4 Author: Salvatore Bonaccorso Date: Fri May 10 09:05:53 2024 -0400 junction: export-cache: cast to a type with a known size to ensure sprintf works As reported in Debian, with the 64bit time_t transition for the armel and armhf architecture, it was found that nfs-utils fails to compile with: libtool: compile: export-cache.c: In function ?junction_flush_exports_cache?: export-cache.c:110:51: error: format ?%ld? expects argument of type ?long int?, but argument 4 has type ?time_t? {aka ?long long int?} [-Werror=format=] 110 | snprintf(flushtime, sizeof(flushtime), "%ld\n", now); | ~~^ ~~~ | | | | | time_t {aka long long int} | long int | %lld time_t is not guaranteed to be 64-bit, so it must be coerced into the expected type for printf. Cast it to long long. Reported-by: Vladimir Petko Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218540 Link: https://bugs.debian.org/1067829 Link: https://bugs.launchpad.net/ubuntu/+source/nfs-utils/+bug/2055349 Fixes: 494d22396d3d ("Add LDAP-free version of libjunction to nfs-utils") Suggested-by: Vladimir Petko Signed-off-by: Salvatore Bonaccorso Signed-off-by: Steve Dickson commit 0470fd526cb15ace1241f8c60fb98fedef74307b Author: Trond Myklebust Date: Fri May 10 09:09:28 2024 -0400 nfsd: allow more than 64 backlogged connections When creating a listener socket to be handed to /proc/fs/nfsd/portlist, we currently limit the number of backlogged connections to 64. Since that value was chosen in 2006, the scale at which data centres operate has changed significantly. Given a modern server with many thousands of clients, a limit of 64 connections can create bottlenecks, particularly at at boot time. Let's use the POSIX-sanctioned maximum value of SOMAXCONN. Reviewed-by: Jeff Layton Acked-by: Chuck Lever Tested-by: Chen Hanxiao Signed-off-by: Trond Myklebust Signed-off-by: Steve Dickson commit 270e4cd3325a59e53f23a7ffc4e2e65aef9cdda9 Author: Steve Dickson Date: Thu May 9 10:30:19 2024 -0400 Revert "mount: If a reserved ports is used, do so for the pings as well" This reverts commit c6aa75d25b79121c4cf83ae09a04f8728c4e6593. commit c6aa75d25b79121c4cf83ae09a04f8728c4e6593 Author: Alexandre Ratchov Date: Sun Apr 21 06:25:31 2024 -0400 mount: If a reserved ports is used, do so for the pings as well mount.nfs always uses a high port to probe the server's ports (regardless of the "-o resvport" option). Certain NFS servers (ex. OpenBSD -current) will drop the connection, the probe will fail, and mount.nfs will exit before any attempt to mount the file-system. If mount.nfs doesn't ping the server from a high port, mounting the file system will just work. Note that the same will happen if the server is behind a firewall that blocks connections to the NFS service that originates from a high port. Signed-off-by: Steve Dickson commit 117102ee541f38fd7d9274feb8b5586f88d4f655 Author: Steve Dickson Date: Thu Apr 11 11:47:49 2024 -0400 mount: warning "namlen=" option for a NFSv4 mount namlen is not a valid option for NFSv4. Currently, we could pass a namlen=xxx in a NFSv4 mount, the mount command succeed and namlen is ignored silently mount.nfs: timeout set for Fri Mar 22 14:22:18 2024 mount.nfs: trying text-based options 'namlen=100,vers=4.2, addr=192.168.122.19,clientaddr=192.168.122.15' This patch will remove "namlen=" option in a NFSv4 mount, and give a warning message in verbose mode. Signed-off-by: Chen Hanxiao Signed-off-by: Steve Dickson commit c0bdcb67c5c30951b497fa794bacec282b524331 Author: Steve Dickson Date: Thu Apr 11 11:50:16 2024 -0400 gssd: use printf format specifiers in printerr The printerr function takes a printf format specifier, tell the compiler about that. This adds the ability for GCC to warn about misuses, and prevents Clang from warning on the implementation. Signed-off-by: Dan McGregor Signed-off-by: Steve Dickson commit 4aaa812366170c5671a99eaca4d814cbf310cfd1 Author: Chen Hanxiao Date: Fri Mar 15 06:43:28 2024 -0400 exports(5): update version information of "refer=" option "refer=" is a NFSv4-specific option (as per RFC 7530 section 8.4.3). Other client version will ignore this option. Signed-off-by: Chen Hanxiao Signed-off-by: Steve Dickson commit ee785fb6c79f0b27c2144faaafadaf3267419470 Author: Ahmad Fatoum Date: Fri Mar 15 06:41:30 2024 -0400 start-statd: use flock -x instead of -e for busybox compatibility busybox flock(1) only supports -x and not -e. util-linux flock(1) treats both -e and -x the same, documents them both in its man page, but lists only -x in its help output. Referring to util-linux git, it seems both options were added between util-linux-2.13-pre1 and util-linux-2.13-pre2 back in 2006, so there should be no harm in switching over to flock -x to avoid confusing error output when attempting to mount a NFS on a busybox system: $ mount -t nfs 192.168.2.13:/home/afa/nfsroot/imx8mn-evk /mnt flock: invalid option -- 'e' BusyBox v1.36.0 () multi-call binary. Usage: flock [-sxun] FD | { FILE [-c] PROG ARGS } [Un]lock file descriptor, or lock FILE, run PROG -s Shared lock -x Exclusive lock (default) -u Unlock FD -n Fail rather than wait Signed-off-by: Ahmad Fatoum Signed-off-by: Steve Dickson commit 9b1f860a3457328a08395651d029a454e0303454 Author: Scott Mayhew Date: Fri Mar 15 06:34:52 2024 -0400 gssd: add support for an "allowed-enctypes" option in nfs.conf Newer kernels have support for newer krb5 encryption types, AES with SHA2 and Camellia. An NFS client with an "old" kernel can talk to and NFS server with a "new" kernel and it just works. An NFS client with a "new" kernel can talk to an NFS server with an "old" kernel, but that requires some additional configuration (particularly if the NFS server does have support for the newer encryption types in its userspace krb5 libraries) that may be unclear and/or burdensome to the admin. 1) If the NFS server has support for the newer encryption types in the userspace krb5 libraries, but not in the kernel's RPCSEC_GSS code, then its possible that it also already has "nfs" keys using those newer encryption types in its keytab. In that case, it's necessary to regenerate the "nfs" keys without the newer encryption types. The reason this is necessary is because if the NFS client requests an "nfs" service ticket from the KDC, and the list of enctypes in in that TGS-REQ contains a newer encryption type, and the KDC had previously generated a key for the NFS server using the newer encryption type, then the resulting service ticket in the TGS-REP will be using the newer encryption type and the NFS server will not be able to decrypt it. 2) It is necessary to either modify the permitted_enctypes field of the krb5.conf or create a custom crypto-policy module (if the crypto-policies package is being used) on the NFS *client* so that it does not include the newer encryption types. The reason this is necessary is because it affects the list of encryption types that will be present in the RPCSEC_GSS_INIT request that the NFS client sends to the NFS server. The kernel on the NFS server cannot not process the request on its own; it has to upcall to gssproxy to do that... and again if the userspace krb5 libraries on the NFS server have support for the newer encryption types, then it will select one of those and the kernel will not be able to import the context when it gets the downcall. Also note that modifying the permitted_enctypes field and/or crypto policy has the side effect of impacting everything krb5 related, not just just NFS. So add support for an "allowed-enctypes" field in nfs.conf. This allows the admin to restrict gssd to using a subset of the encryption types that are supported by the kernel and krb5 libraries. This will remove the need for steps 1 & 2 above, and will only affect NFS rather than krb5 as a whole. For example, for a "new" NFS client talking to an "old" NFS server, the admin will probably want this in the client's nfs.conf: allowed-enctypes=aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96 Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit a4b2310c59ff4a61e81d27aa4cf7bdd1b5def173 Author: Chen Hanxiao Date: Wed Feb 14 15:50:19 2024 -0500 nfs(5): Document the max value "timeo=" mount option Signed-off-by: Chen Hanxiao Signed-off-by: Steve Dickson commit a2c95e4f557a71b482bb62bad6d93ddde51e5dc6 Author: Steve Dickson Date: Mon Jan 22 13:23:57 2024 -0500 reexport.c: Some Distros need the following include to avoid the following error reexport.c: In function ‘connect_fsid_service’: reexport.c:41:28: error: implicit declaration of function ‘offsetof’ [-Werror=implicit-function-declaration] 41 | addr_len = offsetof(struct sockaddr_un, sun_path) + strlen(addr.sun_path); | ^~~~~~~~ reexport.c:19:1: note: ‘offsetof’ is defined in header ‘’; did you forget to ‘#include ’? 18 | #include "xlog.h" +++ |+#include 19 | reexport.c:41:37: error: expected expression before ‘struct’ 41 | addr_len = offsetof(struct sockaddr_un, sun_path) + strlen(addr.sun_path); | ^~~~~~ cc1: some warnings being treated as errors Signed-off-by: Steve Dickson commit 38ddc65d2bd09475c58828686cfcc18fa3f19f76 Author: Gioele Barabucci Date: Sat Jan 20 11:21:30 2024 -0500 systemd: Add Documentation= option to service units Signed-off-by: Gioele Barabucci Signed-off-by: Steve Dickson commit 85ff289e0d16de8a1a67d4c7a84f44108196d2b4 Author: Gioele Barabucci Date: Sat Jan 20 11:19:48 2024 -0500 Fix typos in manpages Signed-off-by: Gioele Barabucci Signed-off-by: Steve Dickson commit 991b7edd17d89a7ea8b95bd2b6e7f01c91fe3475 Author: Gioele Barabucci Date: Sat Jan 20 11:17:25 2024 -0500 Fix typos in error messages Signed-off-by: Gioele Barabucci Signed-off-by: Steve Dickson commit bb25f3f594ddf85e5826e931eaaa35874f6a4204 Author: Petr Vorel Date: Wed Jan 3 19:07:43 2024 -0500 reexport/{fsidd,reexport}.c: Re-add missing includes Older uClibc-ng requires for close(2), unlink(2) and write(2), for struct sockaddr_un. Fixes: 1a4edb2a ("reexport/fsidd.c: Remove unused headers") Fixes: bdc79f02 ("support/reexport.c: Remove unused headers") Reviewed-by: Giulio Benetti Tested-by: Giulio Benetti Signed-off-by: Petr Vorel Signed-off-by: Steve Dickson commit 49567e7d03a5605c590be2135a24d4de8345fa3c Author: Olga Kornievskaia Date: Mon Dec 11 08:59:43 2023 -0500 configure: check for rpc_gss_seccreate If we have rpc_gss_sccreate in tirpc library define HAVE_TIRPC_GSS_SECCREATE, which would allow us to handle bad_integrity errors. Reviewed-by: Chuck Lever Signed-off-by: Olga Kornievskaia Signed-off-by: Steve Dickson commit 15cd566633b1546f0808d0694ede094b4c99752d Author: Olga Kornievskaia Date: Mon Dec 11 08:57:28 2023 -0500 gssd: handle KRB5_AP_ERR_BAD_INTEGRITY for user credentials Unlike the machine credential case, we can't throw away the ticket cache and use the keytab to renew the credentials. Instead, we need to remove the service ticket for the server that returned KRB5_AP_ERR_BAD_INTEGRITY and try again. Reviewed-by: Chuck Lever Signed-off-by: Olga Kornievskaia Signed-off-by: Steve Dickson commit 2bfb59c6f50eb86c21f8e0c33bbf32ec53480fb8 Author: Olga Kornievskaia Date: Mon Dec 11 08:55:35 2023 -0500 gssd: handle KRB5_AP_ERR_BAD_INTEGRITY for machine credentials During context establishment, when the client received KRB5_AP_ERR_BAD_INTEGRITY error, it might be due to the server updating its key material. To handle such error, get a new service ticket and re-try the AP_REQ. This functionality relies on the new API in libtirpc that exposes the gss errors. Reviewed-by: Chuck Lever Signed-off-by: Olga Kornievskaia Signed-off-by: Steve Dickson commit 3abf6b5223af0ccf07d217d71978ee7987acce88 Author: Olga Kornievskaia Date: Mon Dec 11 08:52:47 2023 -0500 gssd: switch to using rpc_gss_seccreate() If available from the libtirpc library, switch to using rpc_gss_seccreate() instead of authgss_create_default() which does not expose gss error codes. Reviewed-by: Chuck Lever Signed-off-by: Olga Kornievskaia Signed-off-by: Steve Dickson commit f05af7d9924b5e455f4e750c1e8985c560784fce Author: Olga Kornievskaia Date: Mon Dec 11 08:50:57 2023 -0500 gssd: revert commit 513630d720bd In preparation for using rpc_gss_seccreate(), revert commit 513630d720bd "gssd: handle KRB5_AP_ERR_BAD_INTEGRITY for machine credentials" Reviewed-by: Chuck Lever Signed-off-by: Olga Kornievskaia Signed-off-by: Steve Dickson commit 20c0797937e9ec43a78a2f5475d4296897f8c537 Author: Olga Kornievskaia Date: Mon Dec 11 08:46:35 2023 -0500 gssd: revert commit a5f3b7ccb01c In preparation for using rpc_gss_seccreate() function, revert commit a5f3b7ccb01c "gssd: handle KRB5_AP_ERR_BAD_INTEGRITY for user credentials" Reviewed-by: Chuck Lever Signed-off-by: Olga Kornievskaia Signed-off-by: Steve Dickson commit df80b21c5a677fc0027e70b200bcc8645ff11e5c Author: Steve Dickson Date: Tue Dec 5 14:10:01 2023 -0500 conf_init_file: Fixed warn_unused_result error conffile.c: In function 'conf_init_file': conffile.c:776:17: error: ignoring return value of 'asprintf' declared with attribute 'warn_unused_result' [-Werror=unused-result] 776 | asprintf(&usrconf, "/usr%s", conf_file); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Steve Dickson commit 45b858ed57585e51e7795f5ba673dea7b82e59d8 Author: Chuck Lever Date: Wed Nov 29 10:45:44 2023 -0500 configure: Make --enable-junction=yes the default When I first introduced the nfsref command as part of fedfs-utils, Bruce suggested that we should adopt nfsref as the mechanism for managing NFSv4 referrals, over the existing refer= and replica= export options. Now that nfsref has been an integral part of nfs-utils for several years, it's time to take the next step toward that goal: ensure that the nfsref command (and the appropriate logic inside of mountd) is built and available by default. Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit 285c81ebdf49b35be1f1fdb526db4f7f493c25ad Author: Chuck Lever Date: Wed Nov 29 10:41:33 2023 -0500 nfsref: Improve nfsref(5) Neil Brown says: > ... I found the man page a bit confusing. It starts off talking about > "referrals", which are suitably defined. Then drifts into talking about > "junctions" which might be the same thing, but aren't defined. > > The intro suggests that the admin can use "refer=" in /etc/exports, but > doesn't say why they might want to use "nfsref" instead, or how the two > relate. > > Description says "Other administrative commands provide richer access to > junction information." but there are no pointers in "See Also". > > The --type option, we are told, can specify nfs-fedfs but there is no > further mention of this, or any pointers to more info. Maybe add > "(deprecated)"?? Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit 04b5b5f8b1938b30d6e594f00f4c07fe9a0e10ec Author: Chuck Lever Date: Wed Nov 29 10:39:33 2023 -0500 nfsref: Remove unneeded #include in utils/nfsref/nfsref.c Neil Brown says: > The only thing that was interesting is that nfsref.c includes > sys/capability.h, and I didn't have libcap declared as BuildRequires. > The ./configure script didn't complain that libcap was missing - instead > the build failed. > > Other places in nfs-utils that include capability.h protect it with > #ifdef HAVE_SYS_CAPABILITY_H > > If nfsref.c followed that pattern I wouldn't have received an error. > But then I wouldn't have added a dependency on libcap. > Do I really want libcap?? I don't know. > But I cannot see where nfsref.c uses libcap or prctl. So maybe > those includes aren't needed. Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit 5540caed9745317e53b566d06b97f1ed418b03b5 Author: Chuck Lever Date: Wed Nov 29 10:37:11 2023 -0500 junction: Remove xmlIndentTreeOutput Though it doesn't seem to be marked deprecated, xmlIndentTreeOutput does not appear in recent versions of libxml2. Since xmlIndentTreeOutput = 1; should be the default behavior now, we can remove this statement without a behavior change. Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit 1bc1fa570a5bd2e23ff288e8d843bee11b24d4ba Author: Chuck Lever Date: Tue Dec 5 13:44:11 2023 -0500 junction: Replace xmlParseMemory According to: https://gnome.pages.gitlab.gnome.org/libxml2/devhelp/libxml2-parser.html#xmlParseMemory xmlParseMemory() is deprecated. Replace the one call site with a call to xmlReadMemory(). Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson commit 85191761c31727c81d9f2b2ee0c35cc4c70d9a7b Author: Ahelenia Ziemiaska Date: Mon Nov 27 10:45:16 2023 -0500 testlk: format off_t as llong instead of ssize_t This, naturally, produces a warning on x32 (and other ILP32 platforms with 64-bit off_t, presumably, but you need to ask for it explicitly there usually): testlk.c: In function ?main?: testlk.c:84:66: warning: format ?%zd? expects argument of type ?signed size_t?, but argument 4 has type ?__off_t? {aka ?long long int?} [-Wformat=] 84 | printf("%s: conflicting lock by %d on (%zd;%zd)\n", | ~~^ | | | int | %lld 85 | fname, fl.l_pid, fl.l_start, fl.l_len); | ~~~~~~~~~~ | | | __off_t {aka long long int} testlk.c:84:70: warning: format ?%zd? expects argument of type ?signed size_t?, but argument 5 has type ?__off_t? {aka ?long long int?} [-Wformat=] 84 | printf("%s: conflicting lock by %d on (%zd;%zd)\n", | ~~^ | | | int | %lld 85 | fname, fl.l_pid, fl.l_start, fl.l_len); | ~~~~~~~~ | | | __off_t {aka long long int} Upcast to long long, doesn't really matter. It does, of course, raise the question of whether other bits of nfs-utils do something equally broken that just isn't caught by the format validator. Reviewed-by: NeilBrown Signed-off-by: Ahelenia Ziemia?ska Signed-off-by: Steve Dickson commit 46f91dc8f0d9aa31e18327cf3ad61c27551c4cfc Author: Ahelenia Ziemiaska Date: Mon Nov 27 10:41:04 2023 -0500 fsidd: call anonymous sockets by their name only, don't fill with NULs to 108 bytes Since e00ab3c0616fe6d83ab0710d9e7d989c299088f7, ss -l looks like this: u_seq LISTEN 0 5 @/run/fsid.sock@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 26989379 * 0 with fsidd pushing all the addresses to 108 bytes wide, which is deeply egregious if you don't filter it out and recolumnate. This is because, naturally (unix(7)), "Null bytes in the name have no special significance": abstract addresses are binary blobs, but paths automatically terminate at the first NUL byte, since paths can't contain those. So just specify the correct address length when we're using the abstract domain: unix(7) recommends "offsetof(struct sockaddr_un, sun_path) + strlen(sun_path) + 1" for paths, but we don't want to include the terminating NUL, so it's just "offsetof(struct sockaddr_un, sun_path) + strlen(sun_path)". This brings the width back to order: -- >8 -- $ ss -la | grep @ u_str ESTAB 0 0 @45208536ec96909a/bus/systemd-timesyn/bus-api-timesync 18500238 * 18501249 u_str ESTAB 0 0 @fecc9657d2315eb7/bus/systemd-network/bus-api-network 18495452 * 18494406 u_seq LISTEN 0 5 @/run/fsid.sock 27168796 * 0 u_str ESTAB 0 0 @ac308f35f50797a2/bus/systemd-logind/system 19406 * 15153 u_str ESTAB 0 0 @b6606e0dfacbae75/bus/systemd/bus-api-system 18494353 * 18495334 u_str ESTAB 0 0 @5880653d215718a7/bus/systemd/bus-system 26930876 * 26930003 -- >8 -- Fixes: e00ab3c0616fe6d83ab0710d9e7d989c299088f7 ("fsidd: provide better default socket name.") Reviewed-by: NeilBrown Signed-off-by: Ahelenia Ziemia?ska Signed-off-by: Steve Dickson commit 6a714409b17ad2cca99d497129fc944a808eb446 Author: NeilBrown Date: Mon Nov 27 10:35:56 2023 -0500 conffile: allow /usr/etc to provide any config files expected in /etc If any config file is configured to be in /etc, also read from /usr/etc. This followed a growing trend of moving as much as possible out of / and into /usr. See https://en.opensuse.org/openSUSE:Packaging_UsrEtc Signed-off-by: NeilBrown Signed-off-by: Steve Dickson commit ed4dc834e1722b9217fae27da1adf29ab21d6a93 Author: NeilBrown Date: Mon Nov 27 10:30:43 2023 -0500 conffile: don't report error from conf_init_file() conf_init_file() currently reports an error if the main config file doesn't exist - even if there are conf files in the conf.d directory. This is only used by nfsconfcli.c. However this is not needed. If there is a real error, and error message is already logged. If it is simply that the file doesn't exist, that isn't really an error. So remove the error messages and change conf_init_file() to not return any status. Also fix up assorted nearby white-space issues. Signed-off-by: NeilBrown Signed-off-by: Steve Dickson commit 40d6d58ee6e58f50d5f1aaf8c1253b2338bd7d06 Author: NeilBrown Date: Mon Nov 27 10:12:19 2023 -0500 exportfs: remove warning if neither subtree_check or no_subtree_check is given This warning was only ever intended as a transitional aid. It doesn't serve any purpose any longer. Let's remove it. Also clean up some white-space issues. Signed-off-by: NeilBrown Signed-off-by: Steve Dickson