Re: New kernel - netscape hangs

H.J. Lu (hjl@varesearch.com)
Wed, 3 Feb 1999 10:03:05 -0800 (PST)


Hi,

A lockd bug in Linux 2.2.1 causes netscape to hang when hitting the
"new msg" button. It took me a while to figure out what was going
on. I have sent a patch to Linus. I hope it will be fixed in the
official kernel soon. I am enclosing the patch here.

-- 
H.J. Lu (hjl@gnu.org)
---
Index: fs/lockd/clntproc.c
===================================================================
RCS file: /local/work/cvs/linux/linux/fs/lockd/clntproc.c,v
retrieving revision 1.1.1.8
diff -u -p -r1.1.1.8 clntproc.c
--- fs/lockd/clntproc.c	1999/01/27 00:29:00	1.1.1.8
+++ fs/lockd/clntproc.c	1999/01/28 06:49:11
@@ -230,6 +230,8 @@ nlmclnt_call(struct nlm_rqst *req, u32 p
 		/* Perform the RPC call. If an error occurs, try again */
 		if ((status = rpc_call(clnt, proc, argp, resp, 0)) < 0) {
 			dprintk("lockd: rpc_call returned error %d\n", -status);
+			if (status == -EPROTONOSUPPORT)
+				return -EINVAL;
 			if (status == -ERESTARTSYS)
 				return status;
 			nlm_rebind_host(host);
Index: net/sunrpc/pmap_clnt.c
===================================================================
RCS file: /local/work/cvs/linux/linux/net/sunrpc/pmap_clnt.c,v
retrieving revision 1.1.1.3
diff -u -p -r1.1.1.3 pmap_clnt.c
--- net/sunrpc/pmap_clnt.c	1997/10/25 04:26:38	1.1.1.3
+++ net/sunrpc/pmap_clnt.c	1999/01/27 23:36:35
@@ -121,7 +121,7 @@ pmap_getport_done(struct rpc_task *task)
 		task->tk_action = NULL;
 	} else if (clnt->cl_port == 0) {
 		/* Program not registered */
-		task->tk_status = -EACCES;
+		task->tk_status = -EPROTONOSUPPORT;
 		task->tk_action = NULL;
 	} else {
 		/* byte-swap port number first */

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/