|
@@ -1833,18 +1833,16 @@ static void encode_sequence(struct xdr_stream *xdr,
|
|
|
struct compound_hdr *hdr)
|
|
|
{
|
|
|
#if defined(CONFIG_NFS_V4_1)
|
|
|
- struct nfs4_session *session = args->sa_session;
|
|
|
+ struct nfs4_session *session;
|
|
|
struct nfs4_slot_table *tp;
|
|
|
- struct nfs4_slot *slot;
|
|
|
+ struct nfs4_slot *slot = args->sa_slot;
|
|
|
__be32 *p;
|
|
|
|
|
|
- if (!session)
|
|
|
+ if (slot == NULL)
|
|
|
return;
|
|
|
|
|
|
- tp = &session->fc_slot_table;
|
|
|
-
|
|
|
- WARN_ON(args->sa_slotid == NFS4_MAX_SLOT_TABLE);
|
|
|
- slot = tp->slots + args->sa_slotid;
|
|
|
+ tp = slot->table;
|
|
|
+ session = tp->session;
|
|
|
|
|
|
encode_op_hdr(xdr, OP_SEQUENCE, decode_sequence_maxsz, hdr);
|
|
|
|
|
@@ -1858,12 +1856,12 @@ static void encode_sequence(struct xdr_stream *xdr,
|
|
|
((u32 *)session->sess_id.data)[1],
|
|
|
((u32 *)session->sess_id.data)[2],
|
|
|
((u32 *)session->sess_id.data)[3],
|
|
|
- slot->seq_nr, args->sa_slotid,
|
|
|
+ slot->seq_nr, slot->slot_nr,
|
|
|
tp->highest_used_slotid, args->sa_cache_this);
|
|
|
p = reserve_space(xdr, NFS4_MAX_SESSIONID_LEN + 16);
|
|
|
p = xdr_encode_opaque_fixed(p, session->sess_id.data, NFS4_MAX_SESSIONID_LEN);
|
|
|
*p++ = cpu_to_be32(slot->seq_nr);
|
|
|
- *p++ = cpu_to_be32(args->sa_slotid);
|
|
|
+ *p++ = cpu_to_be32(slot->slot_nr);
|
|
|
*p++ = cpu_to_be32(tp->highest_used_slotid);
|
|
|
*p = cpu_to_be32(args->sa_cache_this);
|
|
|
#endif /* CONFIG_NFS_V4_1 */
|
|
@@ -2025,8 +2023,9 @@ static void encode_free_stateid(struct xdr_stream *xdr,
|
|
|
static u32 nfs4_xdr_minorversion(const struct nfs4_sequence_args *args)
|
|
|
{
|
|
|
#if defined(CONFIG_NFS_V4_1)
|
|
|
- if (args->sa_session)
|
|
|
- return args->sa_session->clp->cl_mvops->minor_version;
|
|
|
+
|
|
|
+ if (args->sa_slot)
|
|
|
+ return args->sa_slot->table->session->clp->cl_mvops->minor_version;
|
|
|
#endif /* CONFIG_NFS_V4_1 */
|
|
|
return 0;
|
|
|
}
|