X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=utils%2Fstatd%2Fsm-notify.c;h=d8e2c011701b05a539ba4c65ea83545541204542;hb=5d8b800b8438222a55c4698c86b558b15717aa21;hp=76a378c3dd53f770379234d6818d9b5c99528ed6;hpb=69620a042d1151871a31f07ccd210b2dab49c628;p=nfs-utils.git diff --git a/utils/statd/sm-notify.c b/utils/statd/sm-notify.c index 76a378c..d8e2c01 100644 --- a/utils/statd/sm-notify.c +++ b/utils/statd/sm-notify.c @@ -189,10 +189,15 @@ usage: fprintf(stderr, exit(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) { @@ -207,6 +212,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); @@ -215,9 +226,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_ERR, "unable to background: %s", strerror(errno));