Lines Matching refs:xdr

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