Commit d185a334 authored by Trond Myklebust's avatar Trond Myklebust

NFSv4.1: Simplify nfs41_sequence_done()

Nobody uses the rpc_status parameter.

It is not obvious why we need the struct nfs_client argument either, when
we already have that information in the session.
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 2a6e26cd
...@@ -370,12 +370,11 @@ static void nfs41_check_drain_session_complete(struct nfs4_session *ses) ...@@ -370,12 +370,11 @@ static void nfs41_check_drain_session_complete(struct nfs4_session *ses)
complete(&ses->complete); complete(&ses->complete);
} }
static void nfs41_sequence_free_slot(const struct nfs_client *clp, static void nfs41_sequence_free_slot(struct nfs4_sequence_res *res)
struct nfs4_sequence_res *res)
{ {
struct nfs4_slot_table *tbl; struct nfs4_slot_table *tbl;
tbl = &clp->cl_session->fc_slot_table; tbl = &res->sr_session->fc_slot_table;
if (res->sr_slotid == NFS4_MAX_SLOT_TABLE) { if (res->sr_slotid == NFS4_MAX_SLOT_TABLE) {
/* just wake up the next guy waiting since /* just wake up the next guy waiting since
* we may have not consumed a slot after all */ * we may have not consumed a slot after all */
...@@ -385,14 +384,12 @@ static void nfs41_sequence_free_slot(const struct nfs_client *clp, ...@@ -385,14 +384,12 @@ static void nfs41_sequence_free_slot(const struct nfs_client *clp,
spin_lock(&tbl->slot_tbl_lock); spin_lock(&tbl->slot_tbl_lock);
nfs4_free_slot(tbl, res->sr_slotid); nfs4_free_slot(tbl, res->sr_slotid);
nfs41_check_drain_session_complete(clp->cl_session); nfs41_check_drain_session_complete(res->sr_session);
spin_unlock(&tbl->slot_tbl_lock); spin_unlock(&tbl->slot_tbl_lock);
res->sr_slotid = NFS4_MAX_SLOT_TABLE; res->sr_slotid = NFS4_MAX_SLOT_TABLE;
} }
static void nfs41_sequence_done(struct nfs_client *clp, static void nfs41_sequence_done(struct nfs4_sequence_res *res)
struct nfs4_sequence_res *res,
int rpc_status)
{ {
unsigned long timestamp; unsigned long timestamp;
struct nfs4_slot_table *tbl; struct nfs4_slot_table *tbl;
...@@ -413,7 +410,8 @@ static void nfs41_sequence_done(struct nfs_client *clp, ...@@ -413,7 +410,8 @@ static void nfs41_sequence_done(struct nfs_client *clp,
/* Check the SEQUENCE operation status */ /* Check the SEQUENCE operation status */
if (res->sr_status == 0) { if (res->sr_status == 0) {
tbl = &clp->cl_session->fc_slot_table; struct nfs_client *clp = res->sr_session->clp;
tbl = &res->sr_session->fc_slot_table;
slot = tbl->slots + res->sr_slotid; slot = tbl->slots + res->sr_slotid;
/* Update the slot's sequence and clientid lease timer */ /* Update the slot's sequence and clientid lease timer */
++slot->seq_nr; ++slot->seq_nr;
...@@ -429,7 +427,7 @@ static void nfs41_sequence_done(struct nfs_client *clp, ...@@ -429,7 +427,7 @@ static void nfs41_sequence_done(struct nfs_client *clp,
out: out:
/* The session may be reset by one of the error handlers. */ /* The session may be reset by one of the error handlers. */
dprintk("%s: Error %d free the slot \n", __func__, res->sr_status); dprintk("%s: Error %d free the slot \n", __func__, res->sr_status);
nfs41_sequence_free_slot(clp, res); nfs41_sequence_free_slot(res);
} }
/* /*
...@@ -582,7 +580,7 @@ static void nfs41_call_sync_done(struct rpc_task *task, void *calldata) ...@@ -582,7 +580,7 @@ static void nfs41_call_sync_done(struct rpc_task *task, void *calldata)
{ {
struct nfs41_call_sync_data *data = calldata; struct nfs41_call_sync_data *data = calldata;
nfs41_sequence_done(data->clp, data->seq_res, task->tk_status); nfs41_sequence_done(data->seq_res);
} }
struct rpc_call_ops nfs41_call_sync_ops = { struct rpc_call_ops nfs41_call_sync_ops = {
...@@ -662,7 +660,7 @@ static void nfs4_sequence_done(const struct nfs_server *server, ...@@ -662,7 +660,7 @@ static void nfs4_sequence_done(const struct nfs_server *server,
{ {
#ifdef CONFIG_NFS_V4_1 #ifdef CONFIG_NFS_V4_1
if (nfs4_has_session(server->nfs_client)) if (nfs4_has_session(server->nfs_client))
nfs41_sequence_done(server->nfs_client, res, rpc_status); nfs41_sequence_done(res);
#endif /* CONFIG_NFS_V4_1 */ #endif /* CONFIG_NFS_V4_1 */
} }
...@@ -4606,7 +4604,7 @@ static void nfs4_get_lease_time_done(struct rpc_task *task, void *calldata) ...@@ -4606,7 +4604,7 @@ static void nfs4_get_lease_time_done(struct rpc_task *task, void *calldata)
(struct nfs4_get_lease_time_data *)calldata; (struct nfs4_get_lease_time_data *)calldata;
dprintk("--> %s\n", __func__); dprintk("--> %s\n", __func__);
nfs41_sequence_done(data->clp, &data->res->lr_seq_res, task->tk_status); nfs41_sequence_done(&data->res->lr_seq_res);
switch (task->tk_status) { switch (task->tk_status) {
case -NFS4ERR_DELAY: case -NFS4ERR_DELAY:
case -NFS4ERR_GRACE: case -NFS4ERR_GRACE:
...@@ -5095,7 +5093,7 @@ static void nfs41_sequence_call_done(struct rpc_task *task, void *data) ...@@ -5095,7 +5093,7 @@ static void nfs41_sequence_call_done(struct rpc_task *task, void *data)
struct nfs4_sequence_data *calldata = data; struct nfs4_sequence_data *calldata = data;
struct nfs_client *clp = calldata->clp; struct nfs_client *clp = calldata->clp;
nfs41_sequence_done(clp, task->tk_msg.rpc_resp, task->tk_status); nfs41_sequence_done(task->tk_msg.rpc_resp);
if (task->tk_status < 0) { if (task->tk_status < 0) {
dprintk("%s ERROR %d\n", __func__, task->tk_status); dprintk("%s ERROR %d\n", __func__, task->tk_status);
...@@ -5184,7 +5182,7 @@ static void nfs4_reclaim_complete_done(struct rpc_task *task, void *data) ...@@ -5184,7 +5182,7 @@ static void nfs4_reclaim_complete_done(struct rpc_task *task, void *data)
struct nfs4_sequence_res *res = &calldata->res.seq_res; struct nfs4_sequence_res *res = &calldata->res.seq_res;
dprintk("--> %s\n", __func__); dprintk("--> %s\n", __func__);
nfs41_sequence_done(clp, res, task->tk_status); nfs41_sequence_done(res);
switch (task->tk_status) { switch (task->tk_status) {
case 0: case 0:
case -NFS4ERR_COMPLETE_ALREADY: case -NFS4ERR_COMPLETE_ALREADY:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment