Lines Matching refs:xdr
70 static bool nfs4_encode_void(struct svc_rqst *rqstp, struct xdr_stream *xdr) in nfs4_encode_void() argument
75 static __be32 decode_string(struct xdr_stream *xdr, unsigned int *len, in decode_string() argument
80 err = xdr_stream_decode_opaque_inline(xdr, (void **)str, maxlen); in decode_string()
87 static __be32 decode_fh(struct xdr_stream *xdr, struct nfs_fh *fh) in decode_fh() argument
91 p = xdr_inline_decode(xdr, 4); in decode_fh()
97 p = xdr_inline_decode(xdr, fh->size); in decode_fh()
105 static __be32 decode_bitmap(struct xdr_stream *xdr, uint32_t *bitmap) in decode_bitmap() argument
110 p = xdr_inline_decode(xdr, 4); in decode_bitmap()
114 p = xdr_inline_decode(xdr, attrlen << 2); in decode_bitmap()
124 static __be32 decode_stateid(struct xdr_stream *xdr, nfs4_stateid *stateid) in decode_stateid() argument
128 p = xdr_inline_decode(xdr, NFS4_STATEID_SIZE); in decode_stateid()
135 static __be32 decode_delegation_stateid(struct xdr_stream *xdr, nfs4_stateid *stateid) in decode_delegation_stateid() argument
138 return decode_stateid(xdr, stateid); in decode_delegation_stateid()
141 static __be32 decode_compound_hdr_arg(struct xdr_stream *xdr, struct cb_compound_hdr_arg *hdr) in decode_compound_hdr_arg() argument
146 status = decode_string(xdr, &hdr->taglen, &hdr->tag, CB_OP_TAGLEN_MAXSZ); in decode_compound_hdr_arg()
149 p = xdr_inline_decode(xdr, 12); in decode_compound_hdr_arg()
166 static __be32 decode_op_hdr(struct xdr_stream *xdr, unsigned int *op) in decode_op_hdr() argument
169 p = xdr_inline_decode(xdr, 4); in decode_op_hdr()
177 struct xdr_stream *xdr, void *argp) in decode_getattr_args() argument
182 status = decode_fh(xdr, &args->fh); in decode_getattr_args()
185 return decode_bitmap(xdr, args->bitmap); in decode_getattr_args()
189 struct xdr_stream *xdr, void *argp) in decode_recall_args() argument
195 status = decode_delegation_stateid(xdr, &args->stateid); in decode_recall_args()
198 p = xdr_inline_decode(xdr, 4); in decode_recall_args()
202 return decode_fh(xdr, &args->fh); in decode_recall_args()
206 static __be32 decode_layout_stateid(struct xdr_stream *xdr, nfs4_stateid *stateid) in decode_layout_stateid() argument
209 return decode_stateid(xdr, stateid); in decode_layout_stateid()
213 struct xdr_stream *xdr, void *argp) in decode_layoutrecall_args() argument
220 p = xdr_inline_decode(xdr, 4 * sizeof(uint32_t)); in decode_layoutrecall_args()
234 status = decode_fh(xdr, &args->cbl_fh); in decode_layoutrecall_args()
238 p = xdr_inline_decode(xdr, 2 * sizeof(uint64_t)); in decode_layoutrecall_args()
243 return decode_layout_stateid(xdr, &args->cbl_stateid); in decode_layoutrecall_args()
245 p = xdr_inline_decode(xdr, 2 * sizeof(uint64_t)); in decode_layoutrecall_args()
257 struct xdr_stream *xdr, in decode_devicenotify_args() argument
266 p = xdr_inline_decode(xdr, sizeof(uint32_t)); in decode_devicenotify_args()
285 p = xdr_inline_decode(xdr, (4 * sizeof(uint32_t)) + in decode_devicenotify_args()
317 p = xdr_inline_decode(xdr, sizeof(uint32_t)); in decode_devicenotify_args()
344 static __be32 decode_sessionid(struct xdr_stream *xdr, in decode_sessionid() argument
349 p = xdr_inline_decode(xdr, NFS4_MAX_SESSIONID_LEN); in decode_sessionid()
357 static __be32 decode_rc_list(struct xdr_stream *xdr, in decode_rc_list() argument
364 status = decode_sessionid(xdr, &rc_list->rcl_sessionid); in decode_rc_list()
369 p = xdr_inline_decode(xdr, sizeof(uint32_t)); in decode_rc_list()
375 p = xdr_inline_decode(xdr, in decode_rc_list()
396 struct xdr_stream *xdr, in decode_cb_sequence_args() argument
404 status = decode_sessionid(xdr, &args->csa_sessionid); in decode_cb_sequence_args()
408 p = xdr_inline_decode(xdr, 5 * sizeof(uint32_t)); in decode_cb_sequence_args()
427 status = decode_rc_list(xdr, &args->csa_rclists[i]); in decode_cb_sequence_args()
444 struct xdr_stream *xdr, in decode_recallany_args() argument
451 p = xdr_inline_decode(xdr, 4); in decode_recallany_args()
455 status = decode_bitmap(xdr, bitmap); in decode_recallany_args()
464 struct xdr_stream *xdr, in decode_recallslot_args() argument
470 p = xdr_inline_decode(xdr, 4); in decode_recallslot_args()
477 static __be32 decode_lockowner(struct xdr_stream *xdr, struct cb_notify_lock_args *args) in decode_lockowner() argument
482 p = xdr_inline_decode(xdr, 12); in decode_lockowner()
489 p = xdr_inline_decode(xdr, len); in decode_lockowner()
508 struct xdr_stream *xdr, void *argp) in decode_notify_lock_args() argument
513 status = decode_fh(xdr, &args->cbnl_fh); in decode_notify_lock_args()
516 return decode_lockowner(xdr, args); in decode_notify_lock_args()
521 static __be32 decode_write_response(struct xdr_stream *xdr, in decode_write_response() argument
527 p = xdr_inline_decode(xdr, 4); in decode_write_response()
533 p = xdr_inline_decode(xdr, 8 + 4); in decode_write_response()
538 p = xdr_inline_decode(xdr, NFS4_VERIFIER_SIZE); in decode_write_response()
549 struct xdr_stream *xdr, in decode_offload_args() argument
557 status = decode_fh(xdr, &args->coa_fh); in decode_offload_args()
562 status = decode_stateid(xdr, &args->coa_stateid); in decode_offload_args()
567 p = xdr_inline_decode(xdr, 4); in decode_offload_args()
572 status = decode_write_response(xdr, args); in decode_offload_args()
576 p = xdr_inline_decode(xdr, 8); in decode_offload_args()
586 static __be32 encode_string(struct xdr_stream *xdr, unsigned int len, const char *str) in encode_string() argument
588 if (unlikely(xdr_stream_encode_opaque(xdr, str, len) < 0)) in encode_string()
593 static __be32 encode_attr_bitmap(struct xdr_stream *xdr, const uint32_t *bitmap, size_t sz) in encode_attr_bitmap() argument
595 if (xdr_stream_encode_uint32_array(xdr, bitmap, sz) < 0) in encode_attr_bitmap()
600 static __be32 encode_attr_change(struct xdr_stream *xdr, const uint32_t *bitmap, uint64_t change) in encode_attr_change() argument
606 p = xdr_reserve_space(xdr, 8); in encode_attr_change()
613 static __be32 encode_attr_size(struct xdr_stream *xdr, const uint32_t *bitmap, uint64_t size) in encode_attr_size() argument
619 p = xdr_reserve_space(xdr, 8); in encode_attr_size()
626 static __be32 encode_attr_time(struct xdr_stream *xdr, const struct timespec64 *time) in encode_attr_time() argument
630 p = xdr_reserve_space(xdr, 12); in encode_attr_time()
638 static __be32 encode_attr_ctime(struct xdr_stream *xdr, const uint32_t *bitmap, const struct timesp… in encode_attr_ctime() argument
642 return encode_attr_time(xdr,time); in encode_attr_ctime()
645 static __be32 encode_attr_mtime(struct xdr_stream *xdr, const uint32_t *bitmap, const struct timesp… in encode_attr_mtime() argument
649 return encode_attr_time(xdr,time); in encode_attr_mtime()
652 static __be32 encode_compound_hdr_res(struct xdr_stream *xdr, struct cb_compound_hdr_res *hdr) in encode_compound_hdr_res() argument
656 hdr->status = xdr_reserve_space(xdr, 4); in encode_compound_hdr_res()
659 status = encode_string(xdr, hdr->taglen, hdr->tag); in encode_compound_hdr_res()
662 hdr->nops = xdr_reserve_space(xdr, 4); in encode_compound_hdr_res()
668 static __be32 encode_op_hdr(struct xdr_stream *xdr, uint32_t op, __be32 res) in encode_op_hdr() argument
672 p = xdr_reserve_space(xdr, 8); in encode_op_hdr()
680 static __be32 encode_getattr_res(struct svc_rqst *rqstp, struct xdr_stream *xdr, in encode_getattr_res() argument
689 status = encode_attr_bitmap(xdr, res->bitmap, ARRAY_SIZE(res->bitmap)); in encode_getattr_res()
693 savep = xdr_reserve_space(xdr, sizeof(*savep)); in encode_getattr_res()
696 status = encode_attr_change(xdr, res->bitmap, res->change_attr); in encode_getattr_res()
699 status = encode_attr_size(xdr, res->bitmap, res->size); in encode_getattr_res()
702 status = encode_attr_ctime(xdr, res->bitmap, &res->ctime); in encode_getattr_res()
705 status = encode_attr_mtime(xdr, res->bitmap, &res->mtime); in encode_getattr_res()
706 *savep = htonl((unsigned int)((char *)xdr->p - (char *)(savep+1))); in encode_getattr_res()
713 static __be32 encode_sessionid(struct xdr_stream *xdr, in encode_sessionid() argument
718 p = xdr_reserve_space(xdr, NFS4_MAX_SESSIONID_LEN); in encode_sessionid()
727 struct xdr_stream *xdr, in encode_cb_sequence_res() argument
737 status = encode_sessionid(xdr, &res->csr_sessionid); in encode_cb_sequence_res()
741 p = xdr_reserve_space(xdr, 4 * sizeof(uint32_t)); in encode_cb_sequence_res()