|
@@ -502,11 +502,13 @@ static int nfs4_stat_to_errno(int);
|
|
|
(compound_encode_hdr_maxsz + \
|
|
(compound_encode_hdr_maxsz + \
|
|
|
encode_sequence_maxsz + \
|
|
encode_sequence_maxsz + \
|
|
|
encode_putfh_maxsz + \
|
|
encode_putfh_maxsz + \
|
|
|
|
|
+ encode_layoutreturn_maxsz + \
|
|
|
encode_open_downgrade_maxsz)
|
|
encode_open_downgrade_maxsz)
|
|
|
#define NFS4_dec_open_downgrade_sz \
|
|
#define NFS4_dec_open_downgrade_sz \
|
|
|
(compound_decode_hdr_maxsz + \
|
|
(compound_decode_hdr_maxsz + \
|
|
|
decode_sequence_maxsz + \
|
|
decode_sequence_maxsz + \
|
|
|
decode_putfh_maxsz + \
|
|
decode_putfh_maxsz + \
|
|
|
|
|
+ decode_layoutreturn_maxsz + \
|
|
|
decode_open_downgrade_maxsz)
|
|
decode_open_downgrade_maxsz)
|
|
|
#define NFS4_enc_close_sz (compound_encode_hdr_maxsz + \
|
|
#define NFS4_enc_close_sz (compound_encode_hdr_maxsz + \
|
|
|
encode_sequence_maxsz + \
|
|
encode_sequence_maxsz + \
|
|
@@ -2356,6 +2358,8 @@ static void nfs4_xdr_enc_open_downgrade(struct rpc_rqst *req,
|
|
|
encode_compound_hdr(xdr, req, &hdr);
|
|
encode_compound_hdr(xdr, req, &hdr);
|
|
|
encode_sequence(xdr, &args->seq_args, &hdr);
|
|
encode_sequence(xdr, &args->seq_args, &hdr);
|
|
|
encode_putfh(xdr, args->fh, &hdr);
|
|
encode_putfh(xdr, args->fh, &hdr);
|
|
|
|
|
+ if (args->lr_args)
|
|
|
|
|
+ encode_layoutreturn(xdr, args->lr_args, &hdr);
|
|
|
encode_open_downgrade(xdr, args, &hdr);
|
|
encode_open_downgrade(xdr, args, &hdr);
|
|
|
encode_nops(&hdr);
|
|
encode_nops(&hdr);
|
|
|
}
|
|
}
|
|
@@ -6151,6 +6155,12 @@ static int nfs4_xdr_dec_open_downgrade(struct rpc_rqst *rqstp,
|
|
|
status = decode_putfh(xdr);
|
|
status = decode_putfh(xdr);
|
|
|
if (status)
|
|
if (status)
|
|
|
goto out;
|
|
goto out;
|
|
|
|
|
+ if (res->lr_res) {
|
|
|
|
|
+ status = decode_layoutreturn(xdr, res->lr_res);
|
|
|
|
|
+ res->lr_ret = status;
|
|
|
|
|
+ if (status)
|
|
|
|
|
+ goto out;
|
|
|
|
|
+ }
|
|
|
status = decode_open_downgrade(xdr, res);
|
|
status = decode_open_downgrade(xdr, res);
|
|
|
out:
|
|
out:
|
|
|
return status;
|
|
return status;
|