I created this patch to handle a re-occurring issue with NFSRDMA on SLES10. Due to the NFS implementation native to SLES10 handling NFS locking inside the kernel, there are no user space locking daemons running. However, newer NFS code requires locking in user space. This is not an issue for all other distros, as they already have the necessary user space daemons and scripts in-place to start them. I have added the user space locking daemons to rnfs-utils for SLES10, but they need to be started by hand (in addition to starting the NFS service script). I have documented this requirement in the OFED docs, but there seem to be a number of bugs being opened with the cause being a lack of running the user space daemon.
I believe the only way to solve this situation is to add the locking daemons to the NFS server scripts for SLES10, thus giving SLES10 the behavior that the users are expecting. I created a patch to ofa_kernel.spec to add the locking daemons if NFS is being installed via OFED and removed on uninstallation. I have verified that this handles the situation on my systems, but I want to get feedback on the implementation before I request it be pulled in OFED. Thoughts? Thanks, Jon commit 0bfcc2d69e01a212f1835a4db54c20500c52ebce Author: Jon Mason <j...@opengridcomputing.com> Date: Thu Nov 12 11:00:14 2009 -0600 Add logic to apply rnfs_sles10.patch when installing OFED NFS on SLES10. This will add start/stop of rpc.statd to nfsserver init.d script. This fixes bug 1810 Signed-off-by: Jon Mason <j...@opengridcomputing.com> diff --git a/ofed_scripts/ofa_kernel.spec b/ofed_scripts/ofa_kernel.spec index db3723c..582371b 100755 --- a/ofed_scripts/ofa_kernel.spec +++ b/ofed_scripts/ofa_kernel.spec @@ -319,7 +319,12 @@ sed -i -e 's/KERNEL==/KERNEL=/g' $RPM_BUILD_ROOT/etc/udev/rules.d/90-ib.rules ;; esac %endif - + +%if %{build_nfsrdma} + #determine if it is SLES10, if so need to add rpc.statd to the nfsserver script + test `uname -r | cut -d "-" -f 1` = "2.6.16.60" && patch -p0 < $RPM_BUILD_DIR/%{_name}-%{_version}/ofed_scripts/rnfs_sles10.patch +%endif + %clean #Remove installed driver after rpm build finished rm -rf $RPM_BUILD_ROOT @@ -688,6 +693,11 @@ fi fi +%if %{build_nfsrdma} + #determine if it is SLES10, if so need to add rpc.statd to the nfsserver script + test `uname -r | cut -d "-" -f 1` = "2.6.16.60" && sed -i -e '/rpc.statd/{N;d;}' /etc/init.d/nfsserver +%endif + %postun -n kernel-ib-devel ### diff --git a/ofed_scripts/rnfs_sles10.patch b/ofed_scripts/rnfs_sles10.patch new file mode 100644 index 0000000..6476331 --- /dev/null +++ b/ofed_scripts/rnfs_sles10.patch @@ -0,0 +1,20 @@ +--- /etc/init.d/nfsserver.orig 2009-11-12 10:45:37.000000000 -0600 ++++ /etc/init.d/nfsserver 2009-11-12 11:02:27.000000000 -0600 +@@ -107,6 +107,8 @@ case "$1" in + echo "+2 +3 -4" > /proc/fs/nfsd/versions + fi + nfs4_bind_mounts ++ /sbin/rpc.statd ++ rc_status + /usr/sbin/exportfs -r + rc_status + /usr/sbin/rpc.nfsd $PARAMS +@@ -136,6 +138,8 @@ case "$1" in + umount /proc/fs/nfsd + rc_status + fi ++ killall /sbin/rpc.statd ++ rc_status + nfs4_unbind_mounts + rc_status -v + ;; _______________________________________________ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg