diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-10-18 17:20:15 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-10-18 17:20:15 -0400 |
commit | faf5f49c2d9c0af2847837c232a432cc146e203b (patch) | |
tree | f0c097ae68ca3ec3cd5ee0a904916493b00b9c1b /fs/nfs/nfs4xdr.c | |
parent | 0a8838f972883112f0a7b259141b24db17583c2d (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.c | 9 |
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 | } |