Skip to content

Commit

Permalink
NFSv4.1: Label each entry in the session slot tables with its slot nu…
Browse files Browse the repository at this point in the history
…mber

Instead of doing slot table pointer gymnastics every time we want to
know which slot we're using.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
  • Loading branch information
Trond Myklebust authored and Trond Myklebust committed Nov 26, 2012
1 parent e3725ec commit df2fabf
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 6 deletions.
12 changes: 7 additions & 5 deletions fs/nfs/nfs4proc.c
Original file line number Diff line number Diff line change
Expand Up @@ -526,9 +526,9 @@ static int nfs41_sequence_done(struct rpc_task *task, struct nfs4_sequence_res *
* returned NFS4ERR_DELAY as per Section 2.10.6.2
* of RFC5661.
*/
dprintk("%s: slot=%td seq=%d: Operation in progress\n",
dprintk("%s: slot=%u seq=%u: Operation in progress\n",
__func__,
slot - session->fc_slot_table.slots,
slot->slot_nr,
slot->seq_nr);
goto out_retry;
default:
Expand Down Expand Up @@ -671,9 +671,9 @@ int nfs4_setup_sequence(const struct nfs_server *server,
if (session == NULL)
goto out;

dprintk("--> %s clp %p session %p sr_slot %td\n",
dprintk("--> %s clp %p session %p sr_slot %d\n",
__func__, session->clp, session, res->sr_slot ?
res->sr_slot - session->fc_slot_table.slots : -1);
res->sr_slot->slot_nr : -1);

ret = nfs41_setup_sequence(session, args, res, task);
out:
Expand Down Expand Up @@ -5669,8 +5669,10 @@ struct nfs4_slot *nfs4_alloc_slots(struct nfs4_slot_table *table,

tbl = kmalloc_array(max_slots, sizeof(*tbl), gfp_flags);
if (tbl != NULL) {
for (i = 0; i < max_slots; i++)
for (i = 0; i < max_slots; i++) {
tbl[i].table = table;
tbl[i].slot_nr = i;
}
}
return tbl;
}
Expand Down
2 changes: 1 addition & 1 deletion fs/nfs/nfs4xdr.c
Original file line number Diff line number Diff line change
Expand Up @@ -5547,7 +5547,7 @@ static int decode_sequence(struct xdr_stream *xdr,
}
/* slot id */
dummy = be32_to_cpup(p++);
if (dummy != res->sr_slot - session->fc_slot_table.slots) {
if (dummy != res->sr_slot->slot_nr) {
dprintk("%s Invalid slot id\n", __func__);
goto out_err;
}
Expand Down
1 change: 1 addition & 0 deletions include/linux/nfs_xdr.h
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@ struct nfs4_channel_attrs {
struct nfs4_slot {
struct nfs4_slot_table *table;
unsigned long renewal_time;
u32 slot_nr;
u32 seq_nr;
};

Expand Down

0 comments on commit df2fabf

Please sign in to comment.