nfsd4: remove extra put() on callback errors
authorJ. Bruce Fields <bfields@citi.umich.edu>
Tue, 25 May 2010 15:57:56 +0000 (11:57 -0400)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Mon, 31 May 2010 16:43:51 +0000 (12:43 -0400)
Since rpc_call_async() guarantees that the release method will be called
even on failure, this put is wrong.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
fs/nfsd/nfs4callback.c

index eb78e7e2207740c5a3cf36e4d098ef970c88be73..8a21db22bba4b869c6e3e6d62ea988ef0db92815 100644 (file)
@@ -752,7 +752,6 @@ static void _nfsd4_cb_recall(struct nfs4_delegation *dp)
                .rpc_proc = &nfs4_cb_procedures[NFSPROC4_CLNT_CB_RECALL],
                .rpc_cred = callback_cred
        };
-       int status;
 
        if (clnt == NULL)
                return; /* Client is shutting down; give up. */
@@ -760,10 +759,7 @@ static void _nfsd4_cb_recall(struct nfs4_delegation *dp)
        args->args_op = dp;
        msg.rpc_argp = args;
        dp->dl_retries = 1;
-       status = rpc_call_async(clnt, &msg, RPC_TASK_SOFT,
-                               &nfsd4_cb_recall_ops, dp);
-       if (status)
-               nfs4_put_delegation(dp);
+       rpc_call_async(clnt, &msg, RPC_TASK_SOFT, &nfsd4_cb_recall_ops, dp);
 }
 
 void nfsd4_do_callback_rpc(struct work_struct *w)