commit 612e407c46b848932c32be00b835a7b5317e3d08 Author: Steve Dickson Date: Fri Sep 12 06:55:27 2025 -0500 Release: 2.8.4 Signed-off-by: Steve Dickson commit df920ac19d2c54be63b34b39fe8f1ae141c60cc0 Author: Scott Mayhew Date: Wed Sep 10 08:00:38 2025 -0500 rpc-statd.service: define dependency on both rpcbind.service and rpcbind.socket In 91da135f ("systemd unit files: fix up dependencies on rpcbind"), Neil laid out the rationale for how the nfs services should define their dependencies on rpcbind. In a nutshell: 1. Dependencies should only be defined using rpcbind.socket 2. Ordering for dependencies should only be defined usint "After=" 3. nfs-server.service should use "Wants=rpcbind.socket", to allow rpcbind.socket to be masked in NFSv4-only setups. 4. rpc-statd.service should use "Requires=rpcbind.socket", as rpc.statd is useless if it can't register with rpcbind. Then in https://bugzilla.redhat.com/show_bug.cgi?id=2100395, Ben noted that due to the way the dependencies are ordered, when 'systemctl stop rpcbind.socket' is run, systemd first sends SIGTERM to rpcbind, then SIGTERM to rpc.statd. On SIGTERM, rpcbind tears down /var/run/rpcbind.sock. However, rpc-statd on SIGTERM attempts to unregister from rpcbind. This results in a long delay: [root@rawhide ~]# time systemctl restart rpcbind.socket real 1m0.147s user 0m0.004s sys 0m0.003s 8a835ceb ("rpc-statd.service: Stop rpcbind and rpc.stat in an exit race") fixed this by changing the dependency in rpc-statd.service to use "After=rpcbind.service", bending rule #1 from above. Yongcheng recently noted that when runnnig the following test: [root@rawhide ~]# for i in `seq 10`; do systemctl reset-failed; \ systemctl stop rpcbind rpcbind.socket ; systemctl restart nfs-server ; \ systemctl status rpc-statd; done rpc-statd.service would often fail to start: rpc.statd[29938]: Version 2.8.2 starting rpc.statd[29938]: Flags: TI-RPC rpc.statd[29938]: Failed to register (statd, 1, udp): svc_reg() err: RPC: Remote system error - Connection refused rpc.statd[29938]: Failed to register (statd, 1, tcp): svc_reg() err: RPC: Success rpc.statd[29938]: Failed to register (statd, 1, udp6): svc_reg() err: RPC: Success rpc.statd[29938]: Failed to register (statd, 1, tcp6): svc_reg() err: RPC: Success rpc.statd[29938]: failed to create RPC listeners, exiting rpc-statd.service: Control process exited, code=exited, status=1/FAILURE rpc-statd.service: Failed with result 'exit-code'. systemd[1]: Failed to start rpc-statd.service - NFS status monitor for NFSv2/3 locking.. Define the dependency on both rpcbind.service and rpcbind.socket. As Neil explains: "After" declarations only have effect if the units are in the same transaction. If the Unit is not being started or stopped, the After declaration has no effect. So on startup, this will ensure rpcbind.socket is started before rpc-statd.service. On shutdown in a transaction that stops both rpc-statd.service and rpcbind.service, rpcbind.service won't be stopped until after rpc-statd.service is stopped. Fixes: https://issues.redhat.com/browse/RHEL-96937 Reviewed-by: NeilBrown Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 162a0093a86411c4ce46d44660c57b98e4879701 Author: Thiago Becker Date: Wed Sep 10 08:21:47 2025 -0500 nfsrahead: modify get_device_info logic There are a few reports of failures by nfsrahead to set the read ahead when the nfs mount information is not available when the udev event fires. This was alleviated by retrying to read mountinfo multiple times, but some cases where still failing to find the device information. To further alleviate this issue, this patch adds a 50ms delay between attempts. To not incur into unecessary delays, the logic in get_device_info is reworked. While we are in this, remove a second loop of reptitions of get_device_info. Signed-off-by: Thiago Becker Signed-off-by: Steve Dickson commit 9f974046c37b7c28705d5558328759fff708b1cb Author: Yaakov Selkowitz Date: Fri Jun 27 04:54:08 2025 -0500 Fix build with glibc-2.42 exportfs.c: In function ‘release_lockfile’: exportfs.c:83:17: error: ignoring return value of ‘lockf’ declared with attribute ‘warn_unused_result’ [-Werror=unused-result] 83 | lockf(_lockfd, F_ULOCK, 0); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ exportfs.c: In function ‘grab_lockfile’: exportfs.c:77:17: error: ignoring return value of ‘lockf’ declared with attribute ‘warn_unused_result’ [-Werror=unused-result] 77 | lockf(_lockfd, F_LOCK, 0); | ^~~~~~~~~~~~~~~~~~~~~~~~~ lockf is now marked with attribute warn_unused_result: https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=f3c82fc1b41261f582f5f9fa12f74af9bcbc88f9 Signed-off-by: Steve Dickson commit 5252588c6ac8dc6611c2bedf6b6fc86e09142d73 Author: Antonio Alvarez Feijoo Date: Tue Jun 24 10:12:20 2025 -0400 nfsroot-generator: do not fail if nfsroot is not configured If the user configures an alternative way to boot the system, the nfsroot-generator should not fail. In other words, the presence of the nfsroot-generator in the initrd does not imply that nfsroot must be mandatory. Signed-off-by: Antonio Alvarez Feijoo Signed-off-by: Steve Dickson commit ed86ea08dadafbac948c6a45629a6f3282a77233 Author: Antonio Alvarez Feijoo Date: Wed Jun 4 11:46:14 2025 -0400 systemd: Add a generator to mount /sysroot via NFSv4 in the initrd This patch adds the nfsroot-generator to parse the following kernel command line options in the initrd: - root=/dev/nfs nfsroot=[:][,] Defined in /Documentation/admin-guide/nfs/nfsroot.rst - root=nfs[4]:[:][:] Defined in dracut.cmdline(7). Since systemd does not create the sysroot.mount unit when nfsroot is requested [1], this generator can create it so the real root will be mounted in /sysroot, and also add the dependency to initrd-root-fs.target to automatically continue the boot process. [1] https://github.com/systemd/systemd/commit/77b8e92de8264c0b656a7d2fb437dd8d598ab597 Signed-off-by: Antonio Alvarez Feijoo Signed-off-by: Steve Dickson commit bd35452874a718d8df6533d695da24978b6eddf8 Author: Antonio Alvarez Feijoo Date: Wed Jun 4 10:47:28 2025 -0400 systemd: Allow nfs-idmapd.service to be started without the server rpc.idmapd may be needed in the client if nfs4_disable_idmapping is set to 0. By replacing BindsTo= with PartOf=, nfs-idmapd.service can be started independently, and also affected if nfs-server.service is started or stopped. Signed-off-by: Antonio Alvarez Feijoo Signed-off-by: Steve Dickson commit 91a46d28620dd9cbafbffbe2ce5571c17ceb84d4 Author: Steve Dickson Date: Wed Jun 4 11:09:32 2025 -0400 configure.ac: AC_PROG_GCC_TRADITIONAL is obsolete. configure.ac:581: warning: The macro 'AC_PROG_GCC_TRADITIONAL' is obsolete. configure.ac:581: You should run autoupdate. ./lib/autoconf/c.m4:1676: AC_PROG_GCC_TRADITIONAL is expanded from... configure.ac:581: the top level Signed-off-by: Steve Dickson commit 2cf015ea4312f37598efe9733fef3232ab67f784 Author: Steve Dickson Date: Wed May 7 07:42:04 2025 -0400 nfsdctl: Warning Clean Up Removed a number of unused variables Initialized a variable that could be used before initialized Signed-off-by: Steve Dickson commit ff2077d10ad11ad7422d1bb22f5761da6610ca38 Author: zhangyaqi Date: Tue May 6 11:53:59 2025 -0400 gssd:fix the possible buffer overflow in get_full_hostname Signed-off-by: zhangyaqi Signed-off-by: Steve Dickson commit 211280c0e7d2d11e12124cd64e4e6d169b2f2b88 Author: zhangyaqi Date: Tue May 6 11:23:35 2025 -0400 nfsdcld:Fix a memory leak Signed-off-by: zhangyaqi Signed-off-by: Steve Dickson commit c5b1a81310471927f0f42ae9b592c6e06ceb2793 Author: Scott Mayhew Date: Tue May 6 10:53:14 2025 -0400 nfsdctl: fix lockd config during autostart Be sure to actually send the lockd config values over the netlink interface. While we're at it, get rid of the unused "ret" variable. Fixes: f61c2ff8 ("nfsdctl: add necessary bits to configure lockd") Reviewed-by: Jeff Layton Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 6d1cdc66aa7a749535999b812b2a7f18594b2176 Author: Scott Mayhew Date: Tue May 6 10:50:26 2025 -0400 nfsdctl: debug logging fixups Move read_nfsd_conf() out of autostart_func() and into main() so we don't lose any messages. Remove hard-coded NFSD_FAMILY_NAME in the first error message in netlink_msg_alloc() so the error message has the correct family and make both error messages in netlink_msg_alloc() more descriptive/unique. Reviewed-by: Jeff Layton Signed-off-by: Scott Mayhew Signed-off-by: Steve Dickson commit 94a12a1bdabe7acb86bc610c079945ffca01e036 Author: Anna Schumaker Date: Tue May 6 10:24:52 2025 -0400 rpcctl: Add support for `rpcctl switch add-xprt` This is used to add an xprt to the switch at runtime. Signed-off-by: Anna Schumaker Signed-off-by: Steve Dickson commit 6ac06428e7fdedde90eefe446ae88a42714dc974 Author: Anna Schumaker Date: Tue May 6 10:21:42 2025 -0400 rpcctl: Display new rpc_clnt sysfs attributes This includes the rpc program name, rpc version, and maximum number of connections. Signed-off-by: Anna Schumaker Signed-off-by: Steve Dickson commit c2859c0738b2ba426ee7bec61a8a72a517483f09 Author: Anna Schumaker Date: Tue May 6 10:17:36 2025 -0400 rpcctl: Add support for the xprtsec sysfs attribute This was recently added to the Linux kernel, so running rpcctl on kernels that don't have this attribute will print out "unknown" in its place instead. Signed-off-by: Anna Schumaker Signed-off-by: Steve Dickson commit c33753ce86a5f385fdb88c4d29530359b12f72c1 Author: Anna Schumaker Date: Tue May 6 10:15:45 2025 -0400 rpcctl: Rename {read,write}_addr_file() There is nothing address specific about these functions, so name them something more generic so they can be reused. Signed-off-by: Anna Schumaker Signed-off-by: Steve Dickson