diff options
author | Fred Isaman <iisaman@netapp.com> | 2011-03-23 09:27:52 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2011-03-23 15:29:03 -0400 |
commit | 988b6dceb0ae6d642587c8594529b94f6be0c5ea (patch) | |
tree | 78438f297eb2f8c9058872ac8a0f33d1a99b461c /fs/nfs/nfs4xdr.c | |
parent | a861a1e1c398fe34701569fd8ac9225dfe0a9a7e (diff) |
NFSv4.1: remove GETATTR from ds commits
Any COMMIT compound directed to a data server needs to have the
GETATTR calls suppressed. We here, make sure the field we are testing
(data->lseg) is set and refcounted correctly.
Signed-off-by: Fred Isaman <iisaman@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4xdr.c')
-rw-r--r-- | fs/nfs/nfs4xdr.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c index 0cf560f77884..07cdf925c524 100644 --- a/fs/nfs/nfs4xdr.c +++ b/fs/nfs/nfs4xdr.c | |||
@@ -2294,7 +2294,8 @@ static void nfs4_xdr_enc_commit(struct rpc_rqst *req, struct xdr_stream *xdr, | |||
2294 | encode_sequence(xdr, &args->seq_args, &hdr); | 2294 | encode_sequence(xdr, &args->seq_args, &hdr); |
2295 | encode_putfh(xdr, args->fh, &hdr); | 2295 | encode_putfh(xdr, args->fh, &hdr); |
2296 | encode_commit(xdr, args, &hdr); | 2296 | encode_commit(xdr, args, &hdr); |
2297 | encode_getfattr(xdr, args->bitmask, &hdr); | 2297 | if (args->bitmask) |
2298 | encode_getfattr(xdr, args->bitmask, &hdr); | ||
2298 | encode_nops(&hdr); | 2299 | encode_nops(&hdr); |
2299 | } | 2300 | } |
2300 | 2301 | ||
@@ -5723,8 +5724,9 @@ static int nfs4_xdr_dec_commit(struct rpc_rqst *rqstp, struct xdr_stream *xdr, | |||
5723 | status = decode_commit(xdr, res); | 5724 | status = decode_commit(xdr, res); |
5724 | if (status) | 5725 | if (status) |
5725 | goto out; | 5726 | goto out; |
5726 | decode_getfattr(xdr, res->fattr, res->server, | 5727 | if (res->fattr) |
5727 | !RPC_IS_ASYNC(rqstp->rq_task)); | 5728 | decode_getfattr(xdr, res->fattr, res->server, |
5729 | !RPC_IS_ASYNC(rqstp->rq_task)); | ||
5728 | out: | 5730 | out: |
5729 | return status; | 5731 | return status; |
5730 | } | 5732 | } |