From: Martin Schwenke Date: Thu, 1 May 2025 23:15:08 +0000 (+1000) Subject: ctdb-scripts: Move NFS lock manager grace hack to callout X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6b76a13b0861755b804aedb7a3ca009bda6e8478;p=thirdparty%2Fsamba.git ctdb-scripts: Move NFS lock manager grace hack to callout The "startipreallocate" event was added so the NFS-Ganesha callout could use it to start grace. Use it for Linux kernel lock manager grace too. Signed-off-by: Martin Schwenke Reviewed-by: Volker Lendecke --- diff --git a/ctdb/config/nfs-linux-kernel-callout b/ctdb/config/nfs-linux-kernel-callout index f526e1c6342..54857093138 100755 --- a/ctdb/config/nfs-linux-kernel-callout +++ b/ctdb/config/nfs-linux-kernel-callout @@ -326,6 +326,24 @@ nfs_startup() fi } +################################################## +# failover support + +nfs_startipreallocate() +{ + # Put the lock manager into grace + # + # We must let some time pass between stopping and restarting + # the lock manager. Otherwise there is a window where the + # lock manager will respond "strangely" immediately after + # restarting it, which causes clients to fail to reclaim their + # locks. + nfs_callout_init + service_stop "nlockmgr" >/dev/null 2>&1 + sleep 2 + service_start "nlockmgr" >/dev/null 2>&1 +} + ################################################## # monitor-post support @@ -419,6 +437,9 @@ stop) start) service_start "$2" ;; +startipreallocate) + nfs_startipreallocate + ;; monitor-list-shares) nfs_monitor_list_shares ;; @@ -428,7 +449,7 @@ monitor-post) register) nfs_register ;; -monitor-pre | releaseip | takeip | startipreallocate) +monitor-pre | releaseip | takeip) # Not required/implemented : ;; diff --git a/ctdb/tools/statd_callout_helper b/ctdb/tools/statd_callout_helper index b4606470cf8..6ab466f74b2 100755 --- a/ctdb/tools/statd_callout_helper +++ b/ctdb/tools/statd_callout_helper @@ -435,16 +435,6 @@ notify) dir=$(find_statd_sm_dir) rm -f "${dir}/"* "${dir}.bak/"* - # We must also let some time pass between stopping and - # restarting the lock manager. Otherwise there is a window - # where the lock manager will respond "strangely" immediately - # after restarting it, which causes clients to fail to reclaim - # their locks. - nfs_callout_init - "$CTDB_NFS_CALLOUT" "stop" "nlockmgr" >/dev/null 2>&1 - sleep 2 - "$CTDB_NFS_CALLOUT" "start" "nlockmgr" >/dev/null 2>&1 - statd_state="${statd_callout_state_dir}/.statd_state" list_records >"$statd_state"