Lines Matching refs:xdr
84 static void print_overflow_msg(const char *func, const struct xdr_stream *xdr) in print_overflow_msg() argument
88 func, xdr->end - xdr->p); in print_overflow_msg()
106 static int decode_nfsdata(struct xdr_stream *xdr, struct nfs_pgio_res *result) in decode_nfsdata() argument
111 p = xdr_inline_decode(xdr, 4); in decode_nfsdata()
115 recvd = xdr_read_pages(xdr, count); in decode_nfsdata()
128 print_overflow_msg(__func__, xdr); in decode_nfsdata()
154 static int decode_stat(struct xdr_stream *xdr, enum nfs_stat *status) in decode_stat() argument
158 p = xdr_inline_decode(xdr, 4); in decode_stat()
164 print_overflow_msg(__func__, xdr); in decode_stat()
194 static void encode_fhandle(struct xdr_stream *xdr, const struct nfs_fh *fh) in encode_fhandle() argument
198 p = xdr_reserve_space(xdr, NFS2_FHSIZE); in encode_fhandle()
202 static int decode_fhandle(struct xdr_stream *xdr, struct nfs_fh *fh) in decode_fhandle() argument
206 p = xdr_inline_decode(xdr, NFS2_FHSIZE); in decode_fhandle()
213 print_overflow_msg(__func__, xdr); in decode_fhandle()
278 static int decode_fattr(struct xdr_stream *xdr, struct nfs_fattr *fattr) in decode_fattr() argument
283 p = xdr_inline_decode(xdr, NFS_fattr_sz << 2); in decode_fattr()
328 print_overflow_msg(__func__, xdr); in decode_fattr()
354 static void encode_sattr(struct xdr_stream *xdr, const struct iattr *attr) in encode_sattr() argument
358 p = xdr_reserve_space(xdr, NFS_sattr_sz << 2); in encode_sattr()
396 static void encode_filename(struct xdr_stream *xdr, in encode_filename() argument
402 p = xdr_reserve_space(xdr, 4 + length); in encode_filename()
406 static int decode_filename_inline(struct xdr_stream *xdr, in decode_filename_inline() argument
412 p = xdr_inline_decode(xdr, 4); in decode_filename_inline()
418 p = xdr_inline_decode(xdr, count); in decode_filename_inline()
428 print_overflow_msg(__func__, xdr); in decode_filename_inline()
437 static void encode_path(struct xdr_stream *xdr, struct page **pages, u32 length) in encode_path() argument
441 p = xdr_reserve_space(xdr, 4); in encode_path()
443 xdr_write_pages(xdr, pages, 0, length); in encode_path()
446 static int decode_path(struct xdr_stream *xdr) in decode_path() argument
451 p = xdr_inline_decode(xdr, 4); in decode_path()
455 if (unlikely(length >= xdr->buf->page_len || length > NFS_MAXPATHLEN)) in decode_path()
457 recvd = xdr_read_pages(xdr, length); in decode_path()
460 xdr_terminate_string(xdr->buf, length); in decode_path()
470 print_overflow_msg(__func__, xdr); in decode_path()
484 static int decode_attrstat(struct xdr_stream *xdr, struct nfs_fattr *result, in decode_attrstat() argument
490 error = decode_stat(xdr, &status); in decode_attrstat()
497 error = decode_fattr(xdr, result); in decode_attrstat()
512 static void encode_diropargs(struct xdr_stream *xdr, const struct nfs_fh *fh, in encode_diropargs() argument
515 encode_fhandle(xdr, fh); in encode_diropargs()
516 encode_filename(xdr, name, length); in encode_diropargs()
532 static int decode_diropok(struct xdr_stream *xdr, struct nfs_diropok *result) in decode_diropok() argument
536 error = decode_fhandle(xdr, result->fh); in decode_diropok()
539 error = decode_fattr(xdr, result->fattr); in decode_diropok()
544 static int decode_diropres(struct xdr_stream *xdr, struct nfs_diropok *result) in decode_diropres() argument
549 error = decode_stat(xdr, &status); in decode_diropres()
554 error = decode_diropok(xdr, result); in decode_diropres()
570 struct xdr_stream *xdr, in nfs2_xdr_enc_fhandle() argument
573 encode_fhandle(xdr, fh); in nfs2_xdr_enc_fhandle()
585 struct xdr_stream *xdr, in nfs2_xdr_enc_sattrargs() argument
588 encode_fhandle(xdr, args->fh); in nfs2_xdr_enc_sattrargs()
589 encode_sattr(xdr, args->sattr); in nfs2_xdr_enc_sattrargs()
593 struct xdr_stream *xdr, in nfs2_xdr_enc_diropargs() argument
596 encode_diropargs(xdr, args->fh, args->name, args->len); in nfs2_xdr_enc_diropargs()
600 struct xdr_stream *xdr, in nfs2_xdr_enc_readlinkargs() argument
603 encode_fhandle(xdr, args->fh); in nfs2_xdr_enc_readlinkargs()
618 static void encode_readargs(struct xdr_stream *xdr, in encode_readargs() argument
625 encode_fhandle(xdr, args->fh); in encode_readargs()
627 p = xdr_reserve_space(xdr, 4 + 4 + 4); in encode_readargs()
634 struct xdr_stream *xdr, in nfs2_xdr_enc_readargs() argument
637 encode_readargs(xdr, args); in nfs2_xdr_enc_readargs()
654 static void encode_writeargs(struct xdr_stream *xdr, in encode_writeargs() argument
661 encode_fhandle(xdr, args->fh); in encode_writeargs()
663 p = xdr_reserve_space(xdr, 4 + 4 + 4 + 4); in encode_writeargs()
670 xdr_write_pages(xdr, args->pages, args->pgbase, count); in encode_writeargs()
674 struct xdr_stream *xdr, in nfs2_xdr_enc_writeargs() argument
677 encode_writeargs(xdr, args); in nfs2_xdr_enc_writeargs()
678 xdr->buf->flags |= XDRBUF_WRITE; in nfs2_xdr_enc_writeargs()
690 struct xdr_stream *xdr, in nfs2_xdr_enc_createargs() argument
693 encode_diropargs(xdr, args->fh, args->name, args->len); in nfs2_xdr_enc_createargs()
694 encode_sattr(xdr, args->sattr); in nfs2_xdr_enc_createargs()
698 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
719 encode_diropargs(xdr, args->old_dir, old->name, old->len); in nfs2_xdr_enc_renameargs()
720 encode_diropargs(xdr, args->new_dir, new->name, new->len); in nfs2_xdr_enc_renameargs()
732 struct xdr_stream *xdr, in nfs2_xdr_enc_linkargs() argument
735 encode_fhandle(xdr, args->fromfh); in nfs2_xdr_enc_linkargs()
736 encode_diropargs(xdr, args->tofh, args->toname, args->tolen); in nfs2_xdr_enc_linkargs()
749 struct xdr_stream *xdr, in nfs2_xdr_enc_symlinkargs() argument
752 encode_diropargs(xdr, args->fromfh, args->fromname, args->fromlen); in nfs2_xdr_enc_symlinkargs()
753 encode_path(xdr, args->pages, args->pathlen); in nfs2_xdr_enc_symlinkargs()
754 encode_sattr(xdr, args->sattr); in nfs2_xdr_enc_symlinkargs()
766 static void encode_readdirargs(struct xdr_stream *xdr, in encode_readdirargs() argument
771 encode_fhandle(xdr, args->fh); in encode_readdirargs()
773 p = xdr_reserve_space(xdr, 4 + 4); in encode_readdirargs()
779 struct xdr_stream *xdr, in nfs2_xdr_enc_readdirargs() argument
782 encode_readdirargs(xdr, args); in nfs2_xdr_enc_readdirargs()
794 static int nfs2_xdr_dec_stat(struct rpc_rqst *req, struct xdr_stream *xdr, in nfs2_xdr_dec_stat() argument
800 error = decode_stat(xdr, &status); in nfs2_xdr_dec_stat()
811 static int nfs2_xdr_dec_attrstat(struct rpc_rqst *req, struct xdr_stream *xdr, in nfs2_xdr_dec_attrstat() argument
814 return decode_attrstat(xdr, result, NULL); in nfs2_xdr_dec_attrstat()
817 static int nfs2_xdr_dec_diropres(struct rpc_rqst *req, struct xdr_stream *xdr, in nfs2_xdr_dec_diropres() argument
820 return decode_diropres(xdr, result); in nfs2_xdr_dec_diropres()
834 struct xdr_stream *xdr, void *__unused) in nfs2_xdr_dec_readlinkres() argument
839 error = decode_stat(xdr, &status); in nfs2_xdr_dec_readlinkres()
844 error = decode_path(xdr); in nfs2_xdr_dec_readlinkres()
862 static int nfs2_xdr_dec_readres(struct rpc_rqst *req, struct xdr_stream *xdr, in nfs2_xdr_dec_readres() argument
868 error = decode_stat(xdr, &status); in nfs2_xdr_dec_readres()
874 error = decode_fattr(xdr, result->fattr); in nfs2_xdr_dec_readres()
877 error = decode_nfsdata(xdr, result); in nfs2_xdr_dec_readres()
884 static int nfs2_xdr_dec_writeres(struct rpc_rqst *req, struct xdr_stream *xdr, in nfs2_xdr_dec_writeres() argument
889 return decode_attrstat(xdr, result->fattr, &result->op_status); in nfs2_xdr_dec_writeres()
915 int nfs2_decode_dirent(struct xdr_stream *xdr, struct nfs_entry *entry, in nfs2_decode_dirent() argument
921 p = xdr_inline_decode(xdr, 4); in nfs2_decode_dirent()
925 p = xdr_inline_decode(xdr, 4); in nfs2_decode_dirent()
934 p = xdr_inline_decode(xdr, 4); in nfs2_decode_dirent()
939 error = decode_filename_inline(xdr, &entry->name, &entry->len); in nfs2_decode_dirent()
948 p = xdr_inline_decode(xdr, 4); in nfs2_decode_dirent()
958 print_overflow_msg(__func__, xdr); in nfs2_decode_dirent()
979 static int decode_readdirok(struct xdr_stream *xdr) in decode_readdirok() argument
981 return xdr_read_pages(xdr, xdr->buf->page_len); in decode_readdirok()
985 struct xdr_stream *xdr, void *__unused) in nfs2_xdr_dec_readdirres() argument
990 error = decode_stat(xdr, &status); in nfs2_xdr_dec_readdirres()
995 error = decode_readdirok(xdr); in nfs2_xdr_dec_readdirres()
1018 static int decode_info(struct xdr_stream *xdr, struct nfs2_fsstat *result) in decode_info() argument
1022 p = xdr_inline_decode(xdr, NFS_info_sz << 2); in decode_info()
1032 print_overflow_msg(__func__, xdr); in decode_info()
1036 static int nfs2_xdr_dec_statfsres(struct rpc_rqst *req, struct xdr_stream *xdr, in nfs2_xdr_dec_statfsres() argument
1042 error = decode_stat(xdr, &status); in nfs2_xdr_dec_statfsres()
1047 error = decode_info(xdr, result); in nfs2_xdr_dec_statfsres()