|
@@ -2275,7 +2275,8 @@ static void nfs4_xdr_enc_write(struct rpc_rqst *req, struct xdr_stream *xdr,
|
|
|
encode_putfh(xdr, args->fh, &hdr);
|
|
|
encode_write(xdr, args, &hdr);
|
|
|
req->rq_snd_buf.flags |= XDRBUF_WRITE;
|
|
|
- encode_getfattr(xdr, args->bitmask, &hdr);
|
|
|
+ if (args->bitmask)
|
|
|
+ encode_getfattr(xdr, args->bitmask, &hdr);
|
|
|
encode_nops(&hdr);
|
|
|
}
|
|
|
|
|
@@ -5694,8 +5695,9 @@ static int nfs4_xdr_dec_write(struct rpc_rqst *rqstp, struct xdr_stream *xdr,
|
|
|
status = decode_write(xdr, res);
|
|
|
if (status)
|
|
|
goto out;
|
|
|
- decode_getfattr(xdr, res->fattr, res->server,
|
|
|
- !RPC_IS_ASYNC(rqstp->rq_task));
|
|
|
+ if (res->fattr)
|
|
|
+ decode_getfattr(xdr, res->fattr, res->server,
|
|
|
+ !RPC_IS_ASYNC(rqstp->rq_task));
|
|
|
if (!status)
|
|
|
status = res->count;
|
|
|
out:
|