Loading fs/nfsd/nfs4xdr.c +32 −44 Original line number Diff line number Diff line Loading @@ -1950,6 +1950,17 @@ nfsd4_encode_dirent(void *ccdv, const char *name, int namlen, return -EINVAL; } static void nfsd4_encode_stateid(struct nfsd4_compoundres *resp, stateid_t *sid) { ENCODE_HEAD; RESERVE_SPACE(sizeof(stateid_t)); WRITE32(sid->si_generation); WRITEMEM(&sid->si_opaque, sizeof(stateid_opaque_t)); ADJUST_ARGS(); } static __be32 nfsd4_encode_access(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_access *access) { Loading @@ -1969,12 +1980,9 @@ nfsd4_encode_close(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_c { ENCODE_SEQID_OP_HEAD; if (!nfserr) { RESERVE_SPACE(sizeof(stateid_t)); WRITE32(close->cl_stateid.si_generation); WRITEMEM(&close->cl_stateid.si_opaque, sizeof(stateid_opaque_t)); ADJUST_ARGS(); } if (!nfserr) nfsd4_encode_stateid(resp, &close->cl_stateid); ENCODE_SEQID_OP_TAIL(close->cl_stateowner); return nfserr; } Loading Loading @@ -2074,12 +2082,9 @@ nfsd4_encode_lock(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_lo { ENCODE_SEQID_OP_HEAD; if (!nfserr) { RESERVE_SPACE(4 + sizeof(stateid_t)); WRITE32(lock->lk_resp_stateid.si_generation); WRITEMEM(&lock->lk_resp_stateid.si_opaque, sizeof(stateid_opaque_t)); ADJUST_ARGS(); } else if (nfserr == nfserr_denied) if (!nfserr) nfsd4_encode_stateid(resp, &lock->lk_resp_stateid); else if (nfserr == nfserr_denied) nfsd4_encode_lock_denied(resp, &lock->lk_denied); ENCODE_SEQID_OP_TAIL(lock->lk_replay_owner); Loading @@ -2099,12 +2104,8 @@ nfsd4_encode_locku(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_l { ENCODE_SEQID_OP_HEAD; if (!nfserr) { RESERVE_SPACE(sizeof(stateid_t)); WRITE32(locku->lu_stateid.si_generation); WRITEMEM(&locku->lu_stateid.si_opaque, sizeof(stateid_opaque_t)); ADJUST_ARGS(); } if (!nfserr) nfsd4_encode_stateid(resp, &locku->lu_stateid); ENCODE_SEQID_OP_TAIL(locku->lu_stateowner); return nfserr; Loading Loading @@ -2133,9 +2134,8 @@ nfsd4_encode_open(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_op if (nfserr) goto out; RESERVE_SPACE(40 + sizeof(stateid_t)); WRITE32(open->op_stateid.si_generation); WRITEMEM(&open->op_stateid.si_opaque, sizeof(stateid_opaque_t)); nfsd4_encode_stateid(resp, &open->op_stateid); RESERVE_SPACE(40); WRITECINFO(open->op_cinfo); WRITE32(open->op_rflags); WRITE32(2); Loading @@ -2148,10 +2148,8 @@ nfsd4_encode_open(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_op case NFS4_OPEN_DELEGATE_NONE: break; case NFS4_OPEN_DELEGATE_READ: RESERVE_SPACE(20 + sizeof(stateid_t)); WRITE32(open->op_delegate_stateid.si_generation); WRITEMEM(&open->op_delegate_stateid.si_opaque, sizeof(stateid_opaque_t)); nfsd4_encode_stateid(resp, &open->op_delegate_stateid); RESERVE_SPACE(20); WRITE32(open->op_recall); /* Loading @@ -2164,10 +2162,8 @@ nfsd4_encode_open(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_op ADJUST_ARGS(); break; case NFS4_OPEN_DELEGATE_WRITE: RESERVE_SPACE(32 + sizeof(stateid_t)); WRITE32(open->op_delegate_stateid.si_generation); WRITEMEM(&open->op_delegate_stateid.si_opaque, sizeof(stateid_opaque_t)); nfsd4_encode_stateid(resp, &open->op_delegate_stateid); RESERVE_SPACE(32); WRITE32(0); /* Loading Loading @@ -2200,12 +2196,8 @@ nfsd4_encode_open_confirm(struct nfsd4_compoundres *resp, __be32 nfserr, struct { ENCODE_SEQID_OP_HEAD; if (!nfserr) { RESERVE_SPACE(sizeof(stateid_t)); WRITE32(oc->oc_resp_stateid.si_generation); WRITEMEM(&oc->oc_resp_stateid.si_opaque, sizeof(stateid_opaque_t)); ADJUST_ARGS(); } if (!nfserr) nfsd4_encode_stateid(resp, &oc->oc_resp_stateid); ENCODE_SEQID_OP_TAIL(oc->oc_stateowner); return nfserr; Loading @@ -2216,12 +2208,8 @@ nfsd4_encode_open_downgrade(struct nfsd4_compoundres *resp, __be32 nfserr, struc { ENCODE_SEQID_OP_HEAD; if (!nfserr) { RESERVE_SPACE(sizeof(stateid_t)); WRITE32(od->od_stateid.si_generation); WRITEMEM(&od->od_stateid.si_opaque, sizeof(stateid_opaque_t)); ADJUST_ARGS(); } if (!nfserr) nfsd4_encode_stateid(resp, &od->od_stateid); ENCODE_SEQID_OP_TAIL(od->od_stateowner); return nfserr; Loading Loading
fs/nfsd/nfs4xdr.c +32 −44 Original line number Diff line number Diff line Loading @@ -1950,6 +1950,17 @@ nfsd4_encode_dirent(void *ccdv, const char *name, int namlen, return -EINVAL; } static void nfsd4_encode_stateid(struct nfsd4_compoundres *resp, stateid_t *sid) { ENCODE_HEAD; RESERVE_SPACE(sizeof(stateid_t)); WRITE32(sid->si_generation); WRITEMEM(&sid->si_opaque, sizeof(stateid_opaque_t)); ADJUST_ARGS(); } static __be32 nfsd4_encode_access(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_access *access) { Loading @@ -1969,12 +1980,9 @@ nfsd4_encode_close(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_c { ENCODE_SEQID_OP_HEAD; if (!nfserr) { RESERVE_SPACE(sizeof(stateid_t)); WRITE32(close->cl_stateid.si_generation); WRITEMEM(&close->cl_stateid.si_opaque, sizeof(stateid_opaque_t)); ADJUST_ARGS(); } if (!nfserr) nfsd4_encode_stateid(resp, &close->cl_stateid); ENCODE_SEQID_OP_TAIL(close->cl_stateowner); return nfserr; } Loading Loading @@ -2074,12 +2082,9 @@ nfsd4_encode_lock(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_lo { ENCODE_SEQID_OP_HEAD; if (!nfserr) { RESERVE_SPACE(4 + sizeof(stateid_t)); WRITE32(lock->lk_resp_stateid.si_generation); WRITEMEM(&lock->lk_resp_stateid.si_opaque, sizeof(stateid_opaque_t)); ADJUST_ARGS(); } else if (nfserr == nfserr_denied) if (!nfserr) nfsd4_encode_stateid(resp, &lock->lk_resp_stateid); else if (nfserr == nfserr_denied) nfsd4_encode_lock_denied(resp, &lock->lk_denied); ENCODE_SEQID_OP_TAIL(lock->lk_replay_owner); Loading @@ -2099,12 +2104,8 @@ nfsd4_encode_locku(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_l { ENCODE_SEQID_OP_HEAD; if (!nfserr) { RESERVE_SPACE(sizeof(stateid_t)); WRITE32(locku->lu_stateid.si_generation); WRITEMEM(&locku->lu_stateid.si_opaque, sizeof(stateid_opaque_t)); ADJUST_ARGS(); } if (!nfserr) nfsd4_encode_stateid(resp, &locku->lu_stateid); ENCODE_SEQID_OP_TAIL(locku->lu_stateowner); return nfserr; Loading Loading @@ -2133,9 +2134,8 @@ nfsd4_encode_open(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_op if (nfserr) goto out; RESERVE_SPACE(40 + sizeof(stateid_t)); WRITE32(open->op_stateid.si_generation); WRITEMEM(&open->op_stateid.si_opaque, sizeof(stateid_opaque_t)); nfsd4_encode_stateid(resp, &open->op_stateid); RESERVE_SPACE(40); WRITECINFO(open->op_cinfo); WRITE32(open->op_rflags); WRITE32(2); Loading @@ -2148,10 +2148,8 @@ nfsd4_encode_open(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_op case NFS4_OPEN_DELEGATE_NONE: break; case NFS4_OPEN_DELEGATE_READ: RESERVE_SPACE(20 + sizeof(stateid_t)); WRITE32(open->op_delegate_stateid.si_generation); WRITEMEM(&open->op_delegate_stateid.si_opaque, sizeof(stateid_opaque_t)); nfsd4_encode_stateid(resp, &open->op_delegate_stateid); RESERVE_SPACE(20); WRITE32(open->op_recall); /* Loading @@ -2164,10 +2162,8 @@ nfsd4_encode_open(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4_op ADJUST_ARGS(); break; case NFS4_OPEN_DELEGATE_WRITE: RESERVE_SPACE(32 + sizeof(stateid_t)); WRITE32(open->op_delegate_stateid.si_generation); WRITEMEM(&open->op_delegate_stateid.si_opaque, sizeof(stateid_opaque_t)); nfsd4_encode_stateid(resp, &open->op_delegate_stateid); RESERVE_SPACE(32); WRITE32(0); /* Loading Loading @@ -2200,12 +2196,8 @@ nfsd4_encode_open_confirm(struct nfsd4_compoundres *resp, __be32 nfserr, struct { ENCODE_SEQID_OP_HEAD; if (!nfserr) { RESERVE_SPACE(sizeof(stateid_t)); WRITE32(oc->oc_resp_stateid.si_generation); WRITEMEM(&oc->oc_resp_stateid.si_opaque, sizeof(stateid_opaque_t)); ADJUST_ARGS(); } if (!nfserr) nfsd4_encode_stateid(resp, &oc->oc_resp_stateid); ENCODE_SEQID_OP_TAIL(oc->oc_stateowner); return nfserr; Loading @@ -2216,12 +2208,8 @@ nfsd4_encode_open_downgrade(struct nfsd4_compoundres *resp, __be32 nfserr, struc { ENCODE_SEQID_OP_HEAD; if (!nfserr) { RESERVE_SPACE(sizeof(stateid_t)); WRITE32(od->od_stateid.si_generation); WRITEMEM(&od->od_stateid.si_opaque, sizeof(stateid_opaque_t)); ADJUST_ARGS(); } if (!nfserr) nfsd4_encode_stateid(resp, &od->od_stateid); ENCODE_SEQID_OP_TAIL(od->od_stateowner); return nfserr; Loading