From fdae4a7d61aaa075893e46cf122461864eefacfa Mon Sep 17 00:00:00 2001 From: "J. Bruce Fields" Date: Sun, 30 May 2010 11:53:12 -0400 Subject: [PATCH] --- yaml --- r: 206423 b: refs/heads/master c: 172c85dd5764d2766bfd68621e5b54e85c4a6cfa h: refs/heads/master i: 206421: 07ff5efe3faa30bd1c72743022762c262c5e84c2 206419: 2092f6a710601f1d324251073377bc3b0d6a798f 206415: 77586e7c894ef1e063462edb4aed8449f1b29d7a v: v3 --- [refs] | 2 +- trunk/fs/nfsd/nfs4callback.c | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index 6c85a8099e8a..bd217bbffdfa 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 378b7d37f90399b7c34373a5925450529afb917b +refs/heads/master: 172c85dd5764d2766bfd68621e5b54e85c4a6cfa diff --git a/trunk/fs/nfsd/nfs4callback.c b/trunk/fs/nfsd/nfs4callback.c index 8a21db22bba4..ae917921ed41 100644 --- a/trunk/fs/nfsd/nfs4callback.c +++ b/trunk/fs/nfsd/nfs4callback.c @@ -667,7 +667,14 @@ static void nfsd4_cb_recall_done(struct rpc_task *task, void *calldata) } switch (task->tk_status) { - case -EIO: + case 0: + return; + case -EBADHANDLE: + case -NFS4ERR_BAD_STATEID: + /* Race: client probably got cb_recall + * before open reply granting delegation */ + break; + default: /* Network partition? */ atomic_set(&clp->cl_cb_set, 0); warn_no_callback_path(clp, task->tk_status); @@ -676,14 +683,6 @@ static void nfsd4_cb_recall_done(struct rpc_task *task, void *calldata) nfsd4_cb_recall(dp); return; } - case -EBADHANDLE: - case -NFS4ERR_BAD_STATEID: - /* Race: client probably got cb_recall - * before open reply granting delegation */ - break; - default: - /* success, or error we can't handle */ - return; } if (dp->dl_retries--) { rpc_delay(task, 2*HZ);