File sm-notify-no-sync.patch of Package nfs-utils

From c8d18e26d2a53d9036a32c2dafebccaf4ce1634d Mon Sep 17 00:00:00 2001
From: Phil Endecott <phil_bnaqb_endecott@chezphil.org>
Date: Tue, 14 Oct 2008 14:36:58 -0400
Subject: [PATCH] sm-notify should exit as soon as its determined
 there are no hosts to notify. This also decreases
 start up time by a few seconds.

Signed-off-by: Steve Dickson <steved@redhat.com>
---
 utils/statd/sm-notify.c |   16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

--- nfs-utils-1.1.3.orig/utils/statd/sm-notify.c
+++ nfs-utils-1.1.3/utils/statd/sm-notify.c
@@ -152,10 +152,15 @@ usage:		fprintf(stderr,
 		return 1;
 	}
 
+	log_syslog = 1;
+	openlog("sm-notify", LOG_PID, LOG_DAEMON);
+
 	if (strcmp(_SM_BASE_PATH, BASEDIR) == 0) {
-		if (record_pid() == 0 && force == 0 && opt_update_state == 1)
+		if (record_pid() == 0 && force == 0 && opt_update_state == 1) {
 			/* already run, don't try again */
+			nsm_log(LOG_NOTICE, "Already notifying clients; Exiting!");
 			exit(0);
+		}
 	}
 
 	if (opt_srcaddr) {
@@ -169,6 +174,12 @@ usage:		fprintf(stderr,
 	backup_hosts(_SM_DIR_PATH, _SM_BAK_PATH);
 	get_hosts(_SM_BAK_PATH);
 
+	/* If there are not hosts to notify, just exit */
+	if (!hosts) {
+		nsm_log(LOG_DEBUG, "No hosts to notify; exiting");
+		return 0;
+	}
+
 	/* Get and update the NSM state. This will call sync() */
 	nsm_state = nsm_get_state(opt_update_state);
 	set_kernel_nsm_state(nsm_state);
@@ -177,9 +188,6 @@ usage:		fprintf(stderr,
 		if (!opt_quiet)
 			printf("Backgrounding to notify hosts...\n");
 
-		openlog("sm-notify", LOG_PID, LOG_DAEMON);
-		log_syslog = 1;
-
 		if (daemon(0, 0) < 0) {
 			nsm_log(LOG_WARNING, "unable to background: %s",
 					strerror(errno));
openSUSE Build Service is sponsored by