Lines Matching refs:xdr

97 static int decode_nfsdata(struct xdr_stream *xdr, struct nfs_pgio_res *result)
102 p = xdr_inline_decode(xdr, 4);
106 recvd = xdr_read_pages(xdr, count);
142 static int decode_stat(struct xdr_stream *xdr, enum nfs_stat *status)
146 p = xdr_inline_decode(xdr, 4);
155 trace_nfs_xdr_status(xdr, (int)*status);
185 static void encode_fhandle(struct xdr_stream *xdr, const struct nfs_fh *fh)
189 p = xdr_reserve_space(xdr, NFS2_FHSIZE);
193 static int decode_fhandle(struct xdr_stream *xdr, struct nfs_fh *fh)
197 p = xdr_inline_decode(xdr, NFS2_FHSIZE);
266 static int decode_fattr(struct xdr_stream *xdr, struct nfs_fattr *fattr,
272 p = xdr_inline_decode(xdr, NFS_fattr_sz << 2);
340 static void encode_sattr(struct xdr_stream *xdr, const struct iattr *attr,
345 p = xdr_reserve_space(xdr, NFS_sattr_sz << 2);
383 static void encode_filename(struct xdr_stream *xdr,
389 p = xdr_reserve_space(xdr, 4 + length);
393 static int decode_filename_inline(struct xdr_stream *xdr,
399 p = xdr_inline_decode(xdr, 4);
405 p = xdr_inline_decode(xdr, count);
421 static void encode_path(struct xdr_stream *xdr, struct page **pages, u32 length)
425 p = xdr_reserve_space(xdr, 4);
427 xdr_write_pages(xdr, pages, 0, length);
430 static int decode_path(struct xdr_stream *xdr)
435 p = xdr_inline_decode(xdr, 4);
439 if (unlikely(length >= xdr->buf->page_len || length > NFS_MAXPATHLEN))
441 recvd = xdr_read_pages(xdr, length);
444 xdr_terminate_string(xdr->buf, length);
465 static int decode_attrstat(struct xdr_stream *xdr, struct nfs_fattr *result,
472 error = decode_stat(xdr, &status);
479 error = decode_fattr(xdr, result, userns);
494 static void encode_diropargs(struct xdr_stream *xdr, const struct nfs_fh *fh,
497 encode_fhandle(xdr, fh);
498 encode_filename(xdr, name, length);
514 static int decode_diropok(struct xdr_stream *xdr, struct nfs_diropok *result,
519 error = decode_fhandle(xdr, result->fh);
522 error = decode_fattr(xdr, result->fattr, userns);
527 static int decode_diropres(struct xdr_stream *xdr, struct nfs_diropok *result,
533 error = decode_stat(xdr, &status);
538 error = decode_diropok(xdr, result, userns);
554 struct xdr_stream *xdr,
559 encode_fhandle(xdr, fh);
571 struct xdr_stream *xdr,
576 encode_fhandle(xdr, args->fh);
577 encode_sattr(xdr, args->sattr, rpc_rqst_userns(req));
581 struct xdr_stream *xdr,
586 encode_diropargs(xdr, args->fh, args->name, args->len);
590 struct xdr_stream *xdr,
595 encode_fhandle(xdr, args->fh);
610 static void encode_readargs(struct xdr_stream *xdr,
617 encode_fhandle(xdr, args->fh);
619 p = xdr_reserve_space(xdr, 4 + 4 + 4);
626 struct xdr_stream *xdr,
631 encode_readargs(xdr, args);
648 static void encode_writeargs(struct xdr_stream *xdr,
655 encode_fhandle(xdr, args->fh);
657 p = xdr_reserve_space(xdr, 4 + 4 + 4 + 4);
664 xdr_write_pages(xdr, args->pages, args->pgbase, count);
668 struct xdr_stream *xdr,
673 encode_writeargs(xdr, args);
674 xdr->buf->flags |= XDRBUF_WRITE;
686 struct xdr_stream *xdr,
691 encode_diropargs(xdr, args->fh, args->name, args->len);
692 encode_sattr(xdr, args->sattr, rpc_rqst_userns(req));
696 struct xdr_stream *xdr,
701 encode_diropargs(xdr, args->fh, args->name.name, args->name.len);
713 struct xdr_stream *xdr,
720 encode_diropargs(xdr, args->old_dir, old->name, old->len);
721 encode_diropargs(xdr, args->new_dir, new->name, new->len);
733 struct xdr_stream *xdr,
738 encode_fhandle(xdr, args->fromfh);
739 encode_diropargs(xdr, args->tofh, args->toname, args->tolen);
752 struct xdr_stream *xdr,
757 encode_diropargs(xdr, args->fromfh, args->fromname, args->fromlen);
758 encode_path(xdr, args->pages, args->pathlen);
759 encode_sattr(xdr, args->sattr, rpc_rqst_userns(req));
771 static void encode_readdirargs(struct xdr_stream *xdr,
776 encode_fhandle(xdr, args->fh);
778 p = xdr_reserve_space(xdr, 4 + 4);
784 struct xdr_stream *xdr,
789 encode_readdirargs(xdr, args);
801 static int nfs2_xdr_dec_stat(struct rpc_rqst *req, struct xdr_stream *xdr,
807 error = decode_stat(xdr, &status);
818 static int nfs2_xdr_dec_attrstat(struct rpc_rqst *req, struct xdr_stream *xdr,
821 return decode_attrstat(xdr, result, NULL, rpc_rqst_userns(req));
824 static int nfs2_xdr_dec_diropres(struct rpc_rqst *req, struct xdr_stream *xdr,
827 return decode_diropres(xdr, result, rpc_rqst_userns(req));
841 struct xdr_stream *xdr, void *__unused)
846 error = decode_stat(xdr, &status);
851 error = decode_path(xdr);
869 static int nfs2_xdr_dec_readres(struct rpc_rqst *req, struct xdr_stream *xdr,
876 error = decode_stat(xdr, &status);
882 error = decode_fattr(xdr, result->fattr, rpc_rqst_userns(req));
885 error = decode_nfsdata(xdr, result);
892 static int nfs2_xdr_dec_writeres(struct rpc_rqst *req, struct xdr_stream *xdr,
899 return decode_attrstat(xdr, result->fattr, &result->op_status,
906 * @xdr: XDR stream where entry resides
926 int nfs2_decode_dirent(struct xdr_stream *xdr, struct nfs_entry *entry,
932 p = xdr_inline_decode(xdr, 4);
936 p = xdr_inline_decode(xdr, 4);
945 p = xdr_inline_decode(xdr, 4);
950 error = decode_filename_inline(xdr, &entry->name, &entry->len);
958 p = xdr_inline_decode(xdr, 4);
985 static int decode_readdirok(struct xdr_stream *xdr)
987 return xdr_read_pages(xdr, xdr->buf->page_len);
991 struct xdr_stream *xdr, void *__unused)
996 error = decode_stat(xdr, &status);
1001 error = decode_readdirok(xdr);
1024 static int decode_info(struct xdr_stream *xdr, struct nfs2_fsstat *result)
1028 p = xdr_inline_decode(xdr, NFS_info_sz << 2);
1039 static int nfs2_xdr_dec_statfsres(struct rpc_rqst *req, struct xdr_stream *xdr,
1045 error = decode_stat(xdr, &status);
1050 error = decode_info(xdr, result);