nfs-utils/fork-start-statd.patch

35 lines
1.1 KiB
Diff

Index: nfs-utils-1.1.3/utils/mount/network.c
===================================================================
--- nfs-utils-1.1.3.orig/utils/mount/network.c
+++ nfs-utils-1.1.3/utils/mount/network.c
@@ -694,7 +694,18 @@ int start_statd(void)
#ifdef START_STATD
if (stat(START_STATD, &stb) == 0) {
if (S_ISREG(stb.st_mode) && (stb.st_mode & S_IXUSR)) {
- system(START_STATD);
+ pid_t pid = fork();
+ switch (pid) {
+ case 0: /* child */
+ execl(START_STATD, START_STATD, NULL);
+ exit(1);
+ case -1: /* error */
+ perror("Fork failed");
+ break;
+ default: /* parent */
+ waitpid(pid, NULL,0);
+ break;
+ }
if (probe_statd())
return 1;
}
Index: nfs-utils-1.1.3/utils/statd/start-statd
===================================================================
--- nfs-utils-1.1.3.orig/utils/statd/start-statd
+++ nfs-utils-1.1.3/utils/statd/start-statd
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/sh -p
# nfsmount calls this script when mounting a filesystem with locking
# enabled, but when statd does not seem to be running (based on
# /var/run/rpc.statd.pid).