Messages in this thread Patch in this message |  | | From | Zoltan Hidvegi <> | Subject | nfsiod sould not terminate on SIGTERM | Date | Fri, 17 Jan 1997 23:06:01 +0100 (MET) |
| |
During a shutdown TERM signal is sent to all processes which kill nfsiod while other processes are trying to save their state. As nfsiod went away it is no longer possible to use nfs volumes mounted with rsize 4096 or more. It is even worse, the nfs module generates a kernel oops, when a process tries to save its state without nfsiod running. After this oops the use count of the nfs volume does not go to zero and it is no longer possible to umount it. This often causes incomplete umount before reboot is called and it sometimes leads to filesystem corruption.
This patch just ignores SIGTERM in nfsiod, but any other signal can be used to terminate it.
Zoltan
diff -u fs/nfs/nfsiod.c~ fs/nfs/nfsiod.c --- fs/nfs/nfsiod.c~ Mon Jul 8 22:32:38 1996 +++ fs/nfs/nfsiod.c Fri Jan 17 22:46:56 1997 @@ -101,6 +101,7 @@ dprintk("BIO: nfsiod %d waiting\n", current->pid); interruptible_sleep_on(&req->rq_wait); + current->signal &= ~(1<<(SIGTERM-1)); if (current->signal & ~current->blocked) break; if (!req->rq_rpcreq.rq_slot)
|  |