#include <grp.h>
#ifndef BASEDIR
-#define BASEDIR "/var/lib/nfs"
+# ifdef NFS_STATEDIR
+# define BASEDIR NFS_STATEDIR
+# else
+# define BASEDIR "/var/lib/nfs"
+# endif
#endif
#define DEFAULT_SM_STATE_PATH BASEDIR "/state"
if (optind < argc) {
usage: fprintf(stderr,
"Usage: sm-notify [-dfq] [-m max-retry-minutes] [-p srcport]\n"
- " [-P /path/to/state/directory] [-N my_host_name\n");
+ " [-P /path/to/state/directory] [-v my_host_name]\n");
return 1;
}
if (strcmp(_SM_BASE_PATH, BASEDIR) == 0) {
- if (record_pid() == 0 && force == 0 && opt_update_state == 0)
+ if (record_pid() == 0 && force == 0 && opt_update_state == 1)
/* already run, don't try again */
exit(0);
}
snprintf(pid, 20, "%d\n", getpid());
fd = open("/var/run/sm-notify.pid", O_CREAT|O_EXCL|O_WRONLY, 0600);
- if (!fd)
+ if (fd < 0)
return 0;
write(fd, pid, strlen(pid));
close(fd);