35 lines
1.1 KiB
Diff
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).
|