Lines Matching refs:rqstp

166 encode_fattr3(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *fhp,
169 struct user_namespace *userns = nfsd_user_namespace(rqstp);
193 encode_saved_post_attr(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *fhp)
197 return encode_fattr3(rqstp, p, fhp, &fhp->fh_post_attr);
206 encode_post_op_attr(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *fhp)
217 return encode_fattr3(rqstp, p, fhp, &stat);
226 nfs3svc_encode_post_op_attr(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *fhp)
228 return encode_post_op_attr(rqstp, p, fhp);
235 encode_wcc_data(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *fhp)
248 return encode_saved_post_attr(rqstp, p, fhp);
252 return encode_post_op_attr(rqstp, p, fhp);
308 nfs3svc_decode_voidarg(struct svc_rqst *rqstp, __be32 *p)
314 nfs3svc_decode_fhandle(struct svc_rqst *rqstp, __be32 *p)
316 struct nfsd_fhandle *args = rqstp->rq_argp;
321 return xdr_argsize_check(rqstp, p);
325 nfs3svc_decode_sattrargs(struct svc_rqst *rqstp, __be32 *p)
327 struct nfsd3_sattrargs *args = rqstp->rq_argp;
332 p = decode_sattr3(p, &args->attrs, nfsd_user_namespace(rqstp));
340 return xdr_argsize_check(rqstp, p);
344 nfs3svc_decode_diropargs(struct svc_rqst *rqstp, __be32 *p)
346 struct nfsd3_diropargs *args = rqstp->rq_argp;
352 return xdr_argsize_check(rqstp, p);
356 nfs3svc_decode_accessargs(struct svc_rqst *rqstp, __be32 *p)
358 struct nfsd3_accessargs *args = rqstp->rq_argp;
365 return xdr_argsize_check(rqstp, p);
369 nfs3svc_decode_readargs(struct svc_rqst *rqstp, __be32 *p)
371 struct nfsd3_readargs *args = rqstp->rq_argp;
374 u32 max_blocksize = svc_max_payload(rqstp);
387 struct page *p = *(rqstp->rq_next_page++);
389 rqstp->rq_vec[v].iov_base = page_address(p);
390 rqstp->rq_vec[v].iov_len = min_t(unsigned int, len, PAGE_SIZE);
391 len -= rqstp->rq_vec[v].iov_len;
395 return xdr_argsize_check(rqstp, p);
399 nfs3svc_decode_writeargs(struct svc_rqst *rqstp, __be32 *p)
401 struct nfsd3_writeargs *args = rqstp->rq_argp;
403 u32 max_blocksize = svc_max_payload(rqstp);
404 struct kvec *head = rqstp->rq_arg.head;
405 struct kvec *tail = rqstp->rq_arg.tail;
428 dlen = head->iov_len + rqstp->rq_arg.page_len + tail->iov_len - hdr;
451 nfs3svc_decode_createargs(struct svc_rqst *rqstp, __be32 *p)
453 struct nfsd3_createargs *args = rqstp->rq_argp;
462 p = decode_sattr3(p, &args->attrs, nfsd_user_namespace(rqstp));
472 return xdr_argsize_check(rqstp, p);
476 nfs3svc_decode_mkdirargs(struct svc_rqst *rqstp, __be32 *p)
478 struct nfsd3_createargs *args = rqstp->rq_argp;
483 p = decode_sattr3(p, &args->attrs, nfsd_user_namespace(rqstp));
485 return xdr_argsize_check(rqstp, p);
489 nfs3svc_decode_symlinkargs(struct svc_rqst *rqstp, __be32 *p)
491 struct nfsd3_symlinkargs *args = rqstp->rq_argp;
498 p = decode_sattr3(p, &args->attrs, nfsd_user_namespace(rqstp));
503 args->first.iov_len = rqstp->rq_arg.head[0].iov_len;
506 dlen = args->first.iov_len + rqstp->rq_arg.page_len +
507 rqstp->rq_arg.tail[0].iov_len;
514 nfs3svc_decode_mknodargs(struct svc_rqst *rqstp, __be32 *p)
516 struct nfsd3_mknodargs *args = rqstp->rq_argp;
526 p = decode_sattr3(p, &args->attrs, nfsd_user_namespace(rqstp));
533 return xdr_argsize_check(rqstp, p);
537 nfs3svc_decode_renameargs(struct svc_rqst *rqstp, __be32 *p)
539 struct nfsd3_renameargs *args = rqstp->rq_argp;
547 return xdr_argsize_check(rqstp, p);
551 nfs3svc_decode_readlinkargs(struct svc_rqst *rqstp, __be32 *p)
553 struct nfsd3_readlinkargs *args = rqstp->rq_argp;
558 args->buffer = page_address(*(rqstp->rq_next_page++));
560 return xdr_argsize_check(rqstp, p);
564 nfs3svc_decode_linkargs(struct svc_rqst *rqstp, __be32 *p)
566 struct nfsd3_linkargs *args = rqstp->rq_argp;
573 return xdr_argsize_check(rqstp, p);
577 nfs3svc_decode_readdirargs(struct svc_rqst *rqstp, __be32 *p)
579 struct nfsd3_readdirargs *args = rqstp->rq_argp;
581 u32 max_blocksize = svc_max_payload(rqstp);
593 struct page *p = *(rqstp->rq_next_page++);
599 return xdr_argsize_check(rqstp, p);
603 nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, __be32 *p)
605 struct nfsd3_readdirargs *args = rqstp->rq_argp;
607 u32 max_blocksize = svc_max_payload(rqstp);
619 struct page *p = *(rqstp->rq_next_page++);
625 return xdr_argsize_check(rqstp, p);
629 nfs3svc_decode_commitargs(struct svc_rqst *rqstp, __be32 *p)
631 struct nfsd3_commitargs *args = rqstp->rq_argp;
638 return xdr_argsize_check(rqstp, p);
646 nfs3svc_encode_voidres(struct svc_rqst *rqstp, __be32 *p)
648 return xdr_ressize_check(rqstp, p);
653 nfs3svc_encode_attrstat(struct svc_rqst *rqstp, __be32 *p)
655 struct nfsd3_attrstat *resp = rqstp->rq_resp;
661 p = encode_fattr3(rqstp, p, &resp->fh, &resp->stat);
663 return xdr_ressize_check(rqstp, p);
668 nfs3svc_encode_wccstat(struct svc_rqst *rqstp, __be32 *p)
670 struct nfsd3_attrstat *resp = rqstp->rq_resp;
673 p = encode_wcc_data(rqstp, p, &resp->fh);
674 return xdr_ressize_check(rqstp, p);
679 nfs3svc_encode_diropres(struct svc_rqst *rqstp, __be32 *p)
681 struct nfsd3_diropres *resp = rqstp->rq_resp;
686 p = encode_post_op_attr(rqstp, p, &resp->fh);
688 p = encode_post_op_attr(rqstp, p, &resp->dirfh);
689 return xdr_ressize_check(rqstp, p);
694 nfs3svc_encode_accessres(struct svc_rqst *rqstp, __be32 *p)
696 struct nfsd3_accessres *resp = rqstp->rq_resp;
699 p = encode_post_op_attr(rqstp, p, &resp->fh);
702 return xdr_ressize_check(rqstp, p);
707 nfs3svc_encode_readlinkres(struct svc_rqst *rqstp, __be32 *p)
709 struct nfsd3_readlinkres *resp = rqstp->rq_resp;
712 p = encode_post_op_attr(rqstp, p, &resp->fh);
715 xdr_ressize_check(rqstp, p);
716 rqstp->rq_res.page_len = resp->len;
719 rqstp->rq_res.tail[0].iov_base = p;
721 rqstp->rq_res.tail[0].iov_len = 4 - (resp->len&3);
725 return xdr_ressize_check(rqstp, p);
730 nfs3svc_encode_readres(struct svc_rqst *rqstp, __be32 *p)
732 struct nfsd3_readres *resp = rqstp->rq_resp;
735 p = encode_post_op_attr(rqstp, p, &resp->fh);
740 xdr_ressize_check(rqstp, p);
741 /* now update rqstp->rq_res to reflect data as well */
742 rqstp->rq_res.page_len = resp->count;
745 rqstp->rq_res.tail[0].iov_base = p;
747 rqstp->rq_res.tail[0].iov_len = 4 - (resp->count & 3);
751 return xdr_ressize_check(rqstp, p);
756 nfs3svc_encode_writeres(struct svc_rqst *rqstp, __be32 *p)
758 struct nfsd3_writeres *resp = rqstp->rq_resp;
761 p = encode_wcc_data(rqstp, p, &resp->fh);
768 return xdr_ressize_check(rqstp, p);
773 nfs3svc_encode_createres(struct svc_rqst *rqstp, __be32 *p)
775 struct nfsd3_diropres *resp = rqstp->rq_resp;
781 p = encode_post_op_attr(rqstp, p, &resp->fh);
783 p = encode_wcc_data(rqstp, p, &resp->dirfh);
784 return xdr_ressize_check(rqstp, p);
789 nfs3svc_encode_renameres(struct svc_rqst *rqstp, __be32 *p)
791 struct nfsd3_renameres *resp = rqstp->rq_resp;
794 p = encode_wcc_data(rqstp, p, &resp->ffh);
795 p = encode_wcc_data(rqstp, p, &resp->tfh);
796 return xdr_ressize_check(rqstp, p);
801 nfs3svc_encode_linkres(struct svc_rqst *rqstp, __be32 *p)
803 struct nfsd3_linkres *resp = rqstp->rq_resp;
806 p = encode_post_op_attr(rqstp, p, &resp->fh);
807 p = encode_wcc_data(rqstp, p, &resp->tfh);
808 return xdr_ressize_check(rqstp, p);
813 nfs3svc_encode_readdirres(struct svc_rqst *rqstp, __be32 *p)
815 struct nfsd3_readdirres *resp = rqstp->rq_resp;
818 p = encode_post_op_attr(rqstp, p, &resp->fh);
823 xdr_ressize_check(rqstp, p);
824 if (rqstp->rq_res.head[0].iov_len + (2<<2) > PAGE_SIZE)
826 rqstp->rq_res.page_len = (resp->count) << 2;
829 rqstp->rq_res.tail[0].iov_base = p;
832 rqstp->rq_res.tail[0].iov_len = 2<<2;
835 return xdr_ressize_check(rqstp, p);
902 p = encode_post_op_attr(cd->rqstp, p, fh);
967 for (page = cd->rqstp->rq_respages + 1;
968 page < cd->rqstp->rq_next_page; page++) {
1069 nfs3svc_encode_fsstatres(struct svc_rqst *rqstp, __be32 *p)
1071 struct nfsd3_fsstatres *resp = rqstp->rq_resp;
1087 return xdr_ressize_check(rqstp, p);
1092 nfs3svc_encode_fsinfores(struct svc_rqst *rqstp, __be32 *p)
1094 struct nfsd3_fsinfores *resp = rqstp->rq_resp;
1113 return xdr_ressize_check(rqstp, p);
1118 nfs3svc_encode_pathconfres(struct svc_rqst *rqstp, __be32 *p)
1120 struct nfsd3_pathconfres *resp = rqstp->rq_resp;
1134 return xdr_ressize_check(rqstp, p);
1139 nfs3svc_encode_commitres(struct svc_rqst *rqstp, __be32 *p)
1141 struct nfsd3_commitres *resp = rqstp->rq_resp;
1144 p = encode_wcc_data(rqstp, p, &resp->fh);
1150 return xdr_ressize_check(rqstp, p);
1157 nfs3svc_release_fhandle(struct svc_rqst *rqstp)
1159 struct nfsd3_attrstat *resp = rqstp->rq_resp;
1165 nfs3svc_release_fhandle2(struct svc_rqst *rqstp)
1167 struct nfsd3_fhandle_pair *resp = rqstp->rq_resp;