Re: Bug in nfs in kernel 2.2.10 ?

Trond Myklebust (trond.myklebust@fys.uio.no)
22 Jun 1999 12:14:46 +0200


Charles-Edouard Ruault <charlus@eporter.com> writes:

>
> --------back to the client----------------
>
> On the client, i found this on /var/log/messages
>
> Jun 21 18:59:19 charles kernel: RPC: doubly enqueued task!
> Jun 21 18:59:19 charles kernel: RPC: failed to add task to queue: error: -11!
> Jun 21 18:59:19 charles kernel: lockd: couldn't bind to server 192.168.0.2 - giving up.
> Jun 21 18:59:19 charles kernel: RPC: task of released request still queued!
> Jun 21 18:59:19 charles kernel: RPC: (task is on xprt_pending)
>
>
> any idea ?

Does this patch fix things for you?

Cheers,
Trond

--- linux-2.2.10/net/sunrpc/clnt.c-orig Tue Oct 6 18:39:44 1998
+++ linux-2.2.10/net/sunrpc/clnt.c Tue Jun 22 12:11:52 1999
@@ -557,6 +557,8 @@
task->tk_action = NULL;
return;
}
+ if (status < 0)
+ task->tk_status = 0;
}

/*
--- linux-2.2.10/net/sunrpc/xprt.c-orig Tue May 4 19:29:07 1999
+++ linux-2.2.10/net/sunrpc/xprt.c Tue Jun 22 12:11:33 1999
@@ -993,6 +993,8 @@
if (xprt->snd_task) {
dprintk("RPC: %4d TCP write queue full (task %d)\n",
task->tk_pid, xprt->snd_task->tk_pid);
+ if (!task->tk_timeout)
+ task->tk_timeout = req->rq_timeout.to_current;
rpc_sleep_on(&xprt->sending, task,
xprt_transmit_status, NULL);
return;
@@ -1038,6 +1040,8 @@
if (!xprt->write_space) {
/* Remove from pending */
rpc_remove_wait_queue(task);
+ if (! task->tk_timeout)
+ task->tk_timeout = req->rq_timeout.to_current;
rpc_sleep_on(&xprt->sending, task,
xprt_transmit_status, NULL);
end_bh_atomic();
@@ -1093,6 +1097,8 @@

start_bh_atomic();
if (!req->rq_gotit) {
+ if (! task->tk_timeout)
+ task->tk_timeout = req->rq_timeout.to_current;
rpc_sleep_on(&xprt->pending, task,
xprt_receive_status, xprt_timer);
}

-
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/