NFS: NFSv4.0 transport blocking

Plumb in a mechanism for plugging an NFSv4.0 mount, using the
same infrastructure as NFSv4.1 sessions.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
Chuck Lever 2013-08-09 12:49:19 -04:00 committed by Trond Myklebust
parent abf79bb341
commit 3bd2384a77
2 changed files with 79 additions and 16 deletions

View file

@ -1858,11 +1858,10 @@ static void encode_sequence(struct xdr_stream *xdr,
struct nfs4_slot *slot = args->sa_slot;
__be32 *p;
if (slot == NULL)
return;
tp = slot->table;
session = tp->session;
if (!session)
return;
encode_op_hdr(xdr, OP_SEQUENCE, decode_sequence_maxsz, hdr);
@ -2043,9 +2042,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_slot)
return args->sa_slot->table->session->clp->cl_mvops->minor_version;
struct nfs4_session *session = args->sa_slot->table->session;
if (session)
return session->clp->cl_mvops->minor_version;
#endif /* CONFIG_NFS_V4_1 */
return 0;
}
@ -5595,6 +5594,8 @@ static int decode_sequence(struct xdr_stream *xdr,
if (res->sr_slot == NULL)
return 0;
if (!res->sr_slot->table->session)
return 0;
status = decode_op_hdr(xdr, OP_SEQUENCE);
if (!status)