93 lines
2.9 KiB
Diff
93 lines
2.9 KiB
Diff
From a4fd26a37b20e86e7c188b45d40e31d240f3decf Mon Sep 17 00:00:00 2001
|
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
|
Date: Thu, 14 Aug 2025 09:33:17 +0200
|
|
Subject: [PATCH] nfsserver: add ability to set e.g.
|
|
"pipefs-directory=/run/nfs/rpc_pipefs" in /etc/nfs.conf to avoid issues with
|
|
non-clustered Kerberized mounts
|
|
|
|
---
|
|
heartbeat/nfsserver | 28 +++++++++++++++++-----------
|
|
1 file changed, 17 insertions(+), 11 deletions(-)
|
|
|
|
diff --git a/heartbeat/nfsserver b/heartbeat/nfsserver
|
|
index 5b02924a9..83f4bac51 100755
|
|
--- a/heartbeat/nfsserver
|
|
+++ b/heartbeat/nfsserver
|
|
@@ -264,7 +264,7 @@ set_exec_mode()
|
|
##
|
|
# If the user defined an init script, It must exist for us to continue
|
|
##
|
|
- if [ -n "$OCF_RESKEY_nfs_init_script" ]; then
|
|
+ if [ $systemd_running -ne 0 ] && [ -n "$OCF_RESKEY_nfs_init_script" ]; then
|
|
# check_binary will exit the process if init script does not exist
|
|
check_binary ${OCF_RESKEY_nfs_init_script}
|
|
EXEC_MODE=1
|
|
@@ -274,7 +274,7 @@ set_exec_mode()
|
|
##
|
|
# Check to see if the default init script exists, if so we'll use that.
|
|
##
|
|
- if which $DEFAULT_INIT_SCRIPT > /dev/null 2>&1; then
|
|
+ if [ $systemd_running -ne 0 ] && which $DEFAULT_INIT_SCRIPT > /dev/null 2>&1; then
|
|
OCF_RESKEY_nfs_init_script=$DEFAULT_INIT_SCRIPT
|
|
EXEC_MODE=1
|
|
return 0
|
|
@@ -780,7 +780,7 @@ nfsserver_start ()
|
|
# the uts namespace is useless in that case.
|
|
# If systemd is running, mangle the nfs-server.service unit,
|
|
# independent of the "EXEC_MODE" we detected.
|
|
- if $systemd_is_running ; then
|
|
+ if [ $systemd_running -eq 0 ]; then
|
|
if [ -z "$OCF_RESKEY_nfs_server_scope" ] ; then
|
|
remove_unshare_uts_dropins
|
|
else
|
|
@@ -789,7 +789,9 @@ nfsserver_start ()
|
|
fi
|
|
|
|
if ! `mount | grep -q " on $OCF_RESKEY_rpcpipefs_dir "`; then
|
|
- mount -t rpc_pipefs sunrpc $OCF_RESKEY_rpcpipefs_dir
|
|
+ if [ $systemd_running -ne 0 ] || { [ $systemd_running -eq 0 ] && systemctl -q is-enabled var-lib-nfs-rpc_pipefs.mount ;}; then
|
|
+ mount -t rpc_pipefs sunrpc $OCF_RESKEY_rpcpipefs_dir
|
|
+ fi
|
|
fi
|
|
|
|
# remove the sm-notify pid so sm-notify will be allowed to run again without requiring a reboot.
|
|
@@ -1003,11 +1005,15 @@ nfsserver_stop ()
|
|
fi
|
|
fi
|
|
|
|
- # systemd
|
|
- case $EXEC_MODE in
|
|
- [23]) nfs_exec stop rpc-gssd > /dev/null 2>&1
|
|
- ocf_log info "Stop: rpc-gssd"
|
|
- esac
|
|
+
|
|
+ if mount | grep -q " on $OCF_RESKEY_rpcpipefs_dir "; then
|
|
+ # systemd
|
|
+ case $EXEC_MODE in
|
|
+ [23])
|
|
+ nfs_exec stop rpc-gssd > /dev/null 2>&1
|
|
+ ocf_log info "Stop: rpc-gssd"
|
|
+ esac
|
|
+ fi
|
|
|
|
unbind_tree
|
|
rc=$?
|
|
@@ -1017,7 +1023,7 @@ nfsserver_stop ()
|
|
ocf_log info "NFS server stopped"
|
|
fi
|
|
|
|
- if $systemd_is_running; then
|
|
+ if [ $systemd_running -eq 0 ]; then
|
|
remove_unshare_uts_dropins
|
|
fi
|
|
|
|
@@ -1057,7 +1063,7 @@ nfsserver_validate ()
|
|
}
|
|
|
|
nfsserver_validate
|
|
-systemd_is_running && systemd_is_running=true || systemd_is_running=false
|
|
+systemd_is_running; systemd_running=$?
|
|
|
|
case $__OCF_ACTION in
|
|
start) nfsserver_start
|