aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4xdr.c
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2005-10-18 17:20:15 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2005-10-18 17:20:15 -0400
commitfaf5f49c2d9c0af2847837c232a432cc146e203b (patch)
treef0c097ae68ca3ec3cd5ee0a904916493b00b9c1b /fs/nfs/nfs4xdr.c
parent0a8838f972883112f0a7b259141b24db17583c2d (diff)
NFSv4: Make NFS clean up byte range locks asynchronously
Currently we fail to do so if the process was signalled. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4xdr.c')
-rw-r--r--fs/nfs/nfs4xdr.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
index 934ec50ea6bf..4706192cfb07 100644
--- a/fs/nfs/nfs4xdr.c
+++ b/fs/nfs/nfs4xdr.c
@@ -776,7 +776,7 @@ static int encode_locku(struct xdr_stream *xdr, const struct nfs_lockargs *arg)
776 WRITE32(OP_LOCKU); 776 WRITE32(OP_LOCKU);
777 WRITE32(arg->type); 777 WRITE32(arg->type);
778 WRITE32(opargs->seqid->sequence->counter); 778 WRITE32(opargs->seqid->sequence->counter);
779 WRITEMEM(&opargs->stateid, sizeof(opargs->stateid)); 779 WRITEMEM(opargs->stateid->data, sizeof(opargs->stateid->data));
780 WRITE64(arg->offset); 780 WRITE64(arg->offset);
781 WRITE64(arg->length); 781 WRITE64(arg->length);
782 782
@@ -1587,9 +1587,6 @@ static int nfs4_xdr_enc_locku(struct rpc_rqst *req, uint32_t *p, struct nfs_lock
1587 }; 1587 };
1588 int status; 1588 int status;
1589 1589
1590 status = nfs_wait_on_sequence(args->u.locku->seqid, req->rq_task);
1591 if (status != 0)
1592 goto out;
1593 xdr_init_encode(&xdr, &req->rq_snd_buf, p); 1590 xdr_init_encode(&xdr, &req->rq_snd_buf, p);
1594 encode_compound_hdr(&xdr, &hdr); 1591 encode_compound_hdr(&xdr, &hdr);
1595 status = encode_putfh(&xdr, args->fh); 1592 status = encode_putfh(&xdr, args->fh);
@@ -2934,8 +2931,8 @@ static int decode_locku(struct xdr_stream *xdr, struct nfs_lockres *res)
2934 2931
2935 status = decode_op_hdr(xdr, OP_LOCKU); 2932 status = decode_op_hdr(xdr, OP_LOCKU);
2936 if (status == 0) { 2933 if (status == 0) {
2937 READ_BUF(sizeof(nfs4_stateid)); 2934 READ_BUF(sizeof(res->u.stateid.data));
2938 COPYMEM(&res->u.stateid, sizeof(res->u.stateid)); 2935 COPYMEM(res->u.stateid.data, sizeof(res->u.stateid.data));
2939 } 2936 }
2940 return status; 2937 return status;
2941} 2938}