All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] nfsd: Reset cb_status in nfsd4_cb_prepare() at retrying
@ 2015-06-02 10:59 Kinglong Mee
  2015-06-03 15:03 ` J. Bruce Fields
  0 siblings, 1 reply; 4+ messages in thread
From: Kinglong Mee @ 2015-06-02 10:59 UTC (permalink / raw)
  To: J. Bruce Fields, linux-nfs@vger.kernel.org
  Cc: Christoph Hellwig, Trond Myklebust, kinglongmee

nfsd enters a infinite loop and print message per 10 seconds,

May 31 18:33:52 test-server kernel: Error sending entire callback!
May 31 18:34:01 test-server kernel: Error sending entire callback!

It is caused by a cb_layoutreturn got error -10008 (NFS4ERR_DELAY),
and then, the client crash, nfsd enter the infinite loop.

bc_sendto --> call_timeout --> nfsd4_cb_done --> nfsd4_cb_layout_done
 with error -10008 --> rpc_delay(task, HZ/100) --> bc_sendto ...

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 fs/nfsd/nfs4callback.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
index 5694cfb..8b1ac8d 100644
--- a/fs/nfsd/nfs4callback.c
+++ b/fs/nfsd/nfs4callback.c
@@ -875,6 +875,7 @@ static void nfsd4_cb_prepare(struct rpc_task *task, void *calldata)
 	u32 minorversion = clp->cl_minorversion;
 
 	cb->cb_minorversion = minorversion;
+	cb->cb_status = 0;
 	if (minorversion) {
 		if (!nfsd41_cb_get_slot(clp, task))
 			return;
-- 
2.4.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-06-04 20:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-02 10:59 [PATCH 1/2] nfsd: Reset cb_status in nfsd4_cb_prepare() at retrying Kinglong Mee
2015-06-03 15:03 ` J. Bruce Fields
2015-06-04  0:06   ` Kinglong Mee
2015-06-04 20:41     ` J. Bruce Fields

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.