Lines Matching refs:argp
100 if (!(x = (p==argp->tmp || p == argp->tmpp) ? \
101 savemem(argp, p, nbytes) : \
116 if (nbytes <= (u32)((char *)argp->end - (char *)argp->p)) { \
117 p = argp->p; \
118 argp->p += XDR_QUADLEN(nbytes); \
119 } else if (!(p = read_buf(argp, nbytes))) { \
126 static void next_decode_page(struct nfsd4_compoundargs *argp) in next_decode_page() argument
128 argp->p = page_address(argp->pagelist[0]); in next_decode_page()
129 argp->pagelist++; in next_decode_page()
130 if (argp->pagelen < PAGE_SIZE) { in next_decode_page()
131 argp->end = argp->p + (argp->pagelen>>2); in next_decode_page()
132 argp->pagelen = 0; in next_decode_page()
134 argp->end = argp->p + (PAGE_SIZE>>2); in next_decode_page()
135 argp->pagelen -= PAGE_SIZE; in next_decode_page()
139 static __be32 *read_buf(struct nfsd4_compoundargs *argp, u32 nbytes) in read_buf() argument
144 unsigned int avail = (char *)argp->end - (char *)argp->p; in read_buf()
146 if (avail + argp->pagelen < nbytes) in read_buf()
151 if (nbytes <= sizeof(argp->tmp)) in read_buf()
152 p = argp->tmp; in read_buf()
154 kfree(argp->tmpp); in read_buf()
155 p = argp->tmpp = kmalloc(nbytes, GFP_KERNEL); in read_buf()
165 memcpy(p, argp->p, avail); in read_buf()
166 next_decode_page(argp); in read_buf()
167 memcpy(((char*)p)+avail, argp->p, (nbytes - avail)); in read_buf()
168 argp->p += XDR_QUADLEN(nbytes - avail); in read_buf()
186 svcxdr_tmpalloc(struct nfsd4_compoundargs *argp, u32 len) in svcxdr_tmpalloc() argument
193 tb->next = argp->to_free; in svcxdr_tmpalloc()
194 argp->to_free = tb; in svcxdr_tmpalloc()
206 svcxdr_dupstr(struct nfsd4_compoundargs *argp, void *buf, u32 len) in svcxdr_dupstr() argument
208 char *p = svcxdr_tmpalloc(argp, len + 1); in svcxdr_dupstr()
227 static char *savemem(struct nfsd4_compoundargs *argp, __be32 *p, int nbytes) in savemem() argument
231 ret = svcxdr_tmpalloc(argp, nbytes); in savemem()
243 nfsd4_decode_time(struct nfsd4_compoundargs *argp, struct timespec *tv) in nfsd4_decode_time() argument
259 nfsd4_decode_bitmap(struct nfsd4_compoundargs *argp, u32 *bmval) in nfsd4_decode_bitmap() argument
285 nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval, in nfsd4_decode_fattr() argument
295 if ((status = nfsd4_decode_bitmap(argp, bmval))) in nfsd4_decode_fattr()
317 *acl = svcxdr_tmpalloc(argp, nfs4_acl_bytes(nace)); in nfsd4_decode_fattr()
336 status = nfsd_map_name_to_gid(argp->rqstp, in nfsd4_decode_fattr()
339 status = nfsd_map_name_to_uid(argp->rqstp, in nfsd4_decode_fattr()
360 if ((status = nfsd_map_name_to_uid(argp->rqstp, buf, dummy32, &iattr->ia_uid))) in nfsd4_decode_fattr()
371 if ((status = nfsd_map_name_to_gid(argp->rqstp, buf, dummy32, &iattr->ia_gid))) in nfsd4_decode_fattr()
382 status = nfsd4_decode_time(argp, &iattr->ia_atime); in nfsd4_decode_fattr()
401 status = nfsd4_decode_time(argp, &iattr->ia_mtime); in nfsd4_decode_fattr()
432 label->data = svcxdr_dupstr(argp, buf, dummy32); in nfsd4_decode_fattr()
449 nfsd4_decode_stateid(struct nfsd4_compoundargs *argp, stateid_t *sid) in nfsd4_decode_stateid() argument
461 nfsd4_decode_access(struct nfsd4_compoundargs *argp, struct nfsd4_access *access) in nfsd4_decode_access() argument
471 static __be32 nfsd4_decode_cb_sec(struct nfsd4_compoundargs *argp, struct nfsd4_cb_sec *cbs) in nfsd4_decode_cb_sec() argument
551 static __be32 nfsd4_decode_backchannel_ctl(struct nfsd4_compoundargs *argp, struct nfsd4_backchanne… in nfsd4_decode_backchannel_ctl() argument
557 nfsd4_decode_cb_sec(argp, &bc->bc_cb_sec); in nfsd4_decode_backchannel_ctl()
562 static __be32 nfsd4_decode_bind_conn_to_session(struct nfsd4_compoundargs *argp, struct nfsd4_bind_… in nfsd4_decode_bind_conn_to_session() argument
575 nfsd4_decode_close(struct nfsd4_compoundargs *argp, struct nfsd4_close *close) in nfsd4_decode_close() argument
581 return nfsd4_decode_stateid(argp, &close->cl_stateid); in nfsd4_decode_close()
588 nfsd4_decode_commit(struct nfsd4_compoundargs *argp, struct nfsd4_commit *commit) in nfsd4_decode_commit() argument
600 nfsd4_decode_create(struct nfsd4_compoundargs *argp, struct nfsd4_create *create) in nfsd4_decode_create() argument
611 create->cr_data = svcxdr_dupstr(argp, p, create->cr_datalen); in nfsd4_decode_create()
635 status = nfsd4_decode_fattr(argp, create->cr_bmval, &create->cr_iattr, in nfsd4_decode_create()
644 nfsd4_decode_delegreturn(struct nfsd4_compoundargs *argp, struct nfsd4_delegreturn *dr) in nfsd4_decode_delegreturn() argument
646 return nfsd4_decode_stateid(argp, &dr->dr_stateid); in nfsd4_decode_delegreturn()
650 nfsd4_decode_getattr(struct nfsd4_compoundargs *argp, struct nfsd4_getattr *getattr) in nfsd4_decode_getattr() argument
652 return nfsd4_decode_bitmap(argp, getattr->ga_bmval); in nfsd4_decode_getattr()
656 nfsd4_decode_link(struct nfsd4_compoundargs *argp, struct nfsd4_link *link) in nfsd4_decode_link() argument
671 nfsd4_decode_lock(struct nfsd4_compoundargs *argp, struct nfsd4_lock *lock) in nfsd4_decode_lock() argument
690 status = nfsd4_decode_stateid(argp, &lock->lk_new_open_stateid); in nfsd4_decode_lock()
700 status = nfsd4_decode_stateid(argp, &lock->lk_old_lock_stateid); in nfsd4_decode_lock()
711 nfsd4_decode_lockt(struct nfsd4_compoundargs *argp, struct nfsd4_lockt *lockt) in nfsd4_decode_lockt() argument
730 nfsd4_decode_locku(struct nfsd4_compoundargs *argp, struct nfsd4_locku *locku) in nfsd4_decode_locku() argument
739 status = nfsd4_decode_stateid(argp, &locku->lu_stateid); in nfsd4_decode_locku()
750 nfsd4_decode_lookup(struct nfsd4_compoundargs *argp, struct nfsd4_lookup *lookup) in nfsd4_decode_lookup() argument
764 static __be32 nfsd4_decode_share_access(struct nfsd4_compoundargs *argp, u32 *share_access, u32 *de… in nfsd4_decode_share_access() argument
787 if (!argp->minorversion) in nfsd4_decode_share_access()
817 static __be32 nfsd4_decode_share_deny(struct nfsd4_compoundargs *argp, u32 *x) in nfsd4_decode_share_deny() argument
831 static __be32 nfsd4_decode_opaque(struct nfsd4_compoundargs *argp, struct xdr_netobj *o) in nfsd4_decode_opaque() argument
849 nfsd4_decode_open(struct nfsd4_compoundargs *argp, struct nfsd4_open *open) in nfsd4_decode_open() argument
863 status = nfsd4_decode_share_access(argp, &open->op_share_access, in nfsd4_decode_open()
867 status = nfsd4_decode_share_deny(argp, &open->op_share_deny); in nfsd4_decode_open()
872 status = nfsd4_decode_opaque(argp, &open->op_owner); in nfsd4_decode_open()
886 status = nfsd4_decode_fattr(argp, open->op_bmval, in nfsd4_decode_open()
896 if (argp->minorversion < 1) in nfsd4_decode_open()
900 status = nfsd4_decode_fattr(argp, open->op_bmval, in nfsd4_decode_open()
931 status = nfsd4_decode_stateid(argp, &open->op_delegate_stateid); in nfsd4_decode_open()
943 if (argp->minorversion < 1) in nfsd4_decode_open()
948 if (argp->minorversion < 1) in nfsd4_decode_open()
950 status = nfsd4_decode_stateid(argp, &open->op_delegate_stateid); in nfsd4_decode_open()
962 nfsd4_decode_open_confirm(struct nfsd4_compoundargs *argp, struct nfsd4_open_confirm *open_conf) in nfsd4_decode_open_confirm() argument
966 if (argp->minorversion >= 1) in nfsd4_decode_open_confirm()
969 status = nfsd4_decode_stateid(argp, &open_conf->oc_req_stateid); in nfsd4_decode_open_confirm()
979 nfsd4_decode_open_downgrade(struct nfsd4_compoundargs *argp, struct nfsd4_open_downgrade *open_down) in nfsd4_decode_open_downgrade() argument
983 status = nfsd4_decode_stateid(argp, &open_down->od_stateid); in nfsd4_decode_open_downgrade()
988 status = nfsd4_decode_share_access(argp, &open_down->od_share_access, in nfsd4_decode_open_downgrade()
992 status = nfsd4_decode_share_deny(argp, &open_down->od_share_deny); in nfsd4_decode_open_downgrade()
999 nfsd4_decode_putfh(struct nfsd4_compoundargs *argp, struct nfsd4_putfh *putfh) in nfsd4_decode_putfh() argument
1014 nfsd4_decode_putpubfh(struct nfsd4_compoundargs *argp, void *p) in nfsd4_decode_putpubfh() argument
1016 if (argp->minorversion == 0) in nfsd4_decode_putpubfh()
1022 nfsd4_decode_read(struct nfsd4_compoundargs *argp, struct nfsd4_read *read) in nfsd4_decode_read() argument
1026 status = nfsd4_decode_stateid(argp, &read->rd_stateid); in nfsd4_decode_read()
1037 nfsd4_decode_readdir(struct nfsd4_compoundargs *argp, struct nfsd4_readdir *readdir) in nfsd4_decode_readdir() argument
1046 if ((status = nfsd4_decode_bitmap(argp, readdir->rd_bmval))) in nfsd4_decode_readdir()
1053 nfsd4_decode_remove(struct nfsd4_compoundargs *argp, struct nfsd4_remove *remove) in nfsd4_decode_remove() argument
1068 nfsd4_decode_rename(struct nfsd4_compoundargs *argp, struct nfsd4_rename *rename) in nfsd4_decode_rename() argument
1089 nfsd4_decode_renew(struct nfsd4_compoundargs *argp, clientid_t *clientid) in nfsd4_decode_renew() argument
1093 if (argp->minorversion >= 1) in nfsd4_decode_renew()
1103 nfsd4_decode_secinfo(struct nfsd4_compoundargs *argp, in nfsd4_decode_secinfo() argument
1119 nfsd4_decode_secinfo_no_name(struct nfsd4_compoundargs *argp, in nfsd4_decode_secinfo_no_name() argument
1130 nfsd4_decode_setattr(struct nfsd4_compoundargs *argp, struct nfsd4_setattr *setattr) in nfsd4_decode_setattr() argument
1134 status = nfsd4_decode_stateid(argp, &setattr->sa_stateid); in nfsd4_decode_setattr()
1137 return nfsd4_decode_fattr(argp, setattr->sa_bmval, &setattr->sa_iattr, in nfsd4_decode_setattr()
1142 nfsd4_decode_setclientid(struct nfsd4_compoundargs *argp, struct nfsd4_setclientid *setclientid) in nfsd4_decode_setclientid() argument
1146 if (argp->minorversion >= 1) in nfsd4_decode_setclientid()
1152 status = nfsd4_decode_opaque(argp, &setclientid->se_name); in nfsd4_decode_setclientid()
1172 nfsd4_decode_setclientid_confirm(struct nfsd4_compoundargs *argp, struct nfsd4_setclientid_confirm … in nfsd4_decode_setclientid_confirm() argument
1176 if (argp->minorversion >= 1) in nfsd4_decode_setclientid_confirm()
1188 nfsd4_decode_verify(struct nfsd4_compoundargs *argp, struct nfsd4_verify *verify) in nfsd4_decode_verify() argument
1192 if ((status = nfsd4_decode_bitmap(argp, verify->ve_bmval))) in nfsd4_decode_verify()
1207 nfsd4_decode_write(struct nfsd4_compoundargs *argp, struct nfsd4_write *write) in nfsd4_decode_write() argument
1213 status = nfsd4_decode_stateid(argp, &write->wr_stateid); in nfsd4_decode_write()
1227 avail = (char*)argp->end - (char*)argp->p; in nfsd4_decode_write()
1228 if (avail + argp->pagelen < write->wr_buflen) { in nfsd4_decode_write()
1235 write->wr_pagelist = argp->pagelist; in nfsd4_decode_write()
1244 argp->pagelist += pages; in nfsd4_decode_write()
1245 argp->pagelen -= pages * PAGE_SIZE; in nfsd4_decode_write()
1248 argp->p = (__be32 *)page_address(argp->pagelist[0]); in nfsd4_decode_write()
1249 argp->pagelist++; in nfsd4_decode_write()
1250 argp->end = argp->p + XDR_QUADLEN(PAGE_SIZE); in nfsd4_decode_write()
1252 argp->p += XDR_QUADLEN(len); in nfsd4_decode_write()
1258 nfsd4_decode_release_lockowner(struct nfsd4_compoundargs *argp, struct nfsd4_release_lockowner *rlo… in nfsd4_decode_release_lockowner() argument
1262 if (argp->minorversion >= 1) in nfsd4_decode_release_lockowner()
1271 if (argp->minorversion && !zero_clientid(&rlockowner->rl_clientid)) in nfsd4_decode_release_lockowner()
1277 nfsd4_decode_exchange_id(struct nfsd4_compoundargs *argp, in nfsd4_decode_exchange_id() argument
1286 status = nfsd4_decode_opaque(argp, &exid->clname); in nfsd4_decode_exchange_id()
1381 nfsd4_decode_create_session(struct nfsd4_compoundargs *argp, in nfsd4_decode_create_session() argument
1428 nfsd4_decode_cb_sec(argp, &sess->cb_sec); in nfsd4_decode_create_session()
1433 nfsd4_decode_destroy_session(struct nfsd4_compoundargs *argp, in nfsd4_decode_destroy_session() argument
1444 nfsd4_decode_free_stateid(struct nfsd4_compoundargs *argp, in nfsd4_decode_free_stateid() argument
1457 nfsd4_decode_sequence(struct nfsd4_compoundargs *argp, in nfsd4_decode_sequence() argument
1473 nfsd4_decode_test_stateid(struct nfsd4_compoundargs *argp, struct nfsd4_test_stateid *test_stateid) in nfsd4_decode_test_stateid() argument
1485 stateid = svcxdr_tmpalloc(argp, sizeof(*stateid)); in nfsd4_decode_test_stateid()
1494 status = nfsd4_decode_stateid(argp, &stateid->ts_id_stateid); in nfsd4_decode_test_stateid()
1508 static __be32 nfsd4_decode_destroy_clientid(struct nfsd4_compoundargs *argp, struct nfsd4_destroy_c… in nfsd4_decode_destroy_clientid() argument
1518 static __be32 nfsd4_decode_reclaim_complete(struct nfsd4_compoundargs *argp, struct nfsd4_reclaim_c… in nfsd4_decode_reclaim_complete() argument
1530 nfsd4_decode_getdeviceinfo(struct nfsd4_compoundargs *argp, in nfsd4_decode_getdeviceinfo() argument
1555 nfsd4_decode_layoutget(struct nfsd4_compoundargs *argp, in nfsd4_decode_layoutget() argument
1568 status = nfsd4_decode_stateid(argp, &lgp->lg_sid); in nfsd4_decode_layoutget()
1579 nfsd4_decode_layoutcommit(struct nfsd4_compoundargs *argp, in nfsd4_decode_layoutcommit() argument
1590 status = nfsd4_decode_stateid(argp, &lcp->lc_sid); in nfsd4_decode_layoutcommit()
1604 status = nfsd4_decode_time(argp, &lcp->lc_mtime); in nfsd4_decode_layoutcommit()
1627 nfsd4_decode_layoutreturn(struct nfsd4_compoundargs *argp, in nfsd4_decode_layoutreturn() argument
1642 status = nfsd4_decode_stateid(argp, &lrp->lr_sid); in nfsd4_decode_layoutreturn()
1662 nfsd4_decode_fallocate(struct nfsd4_compoundargs *argp, in nfsd4_decode_fallocate() argument
1667 status = nfsd4_decode_stateid(argp, &fallocate->falloc_stateid); in nfsd4_decode_fallocate()
1679 nfsd4_decode_seek(struct nfsd4_compoundargs *argp, struct nfsd4_seek *seek) in nfsd4_decode_seek() argument
1683 status = nfsd4_decode_stateid(argp, &seek->seek_stateid); in nfsd4_decode_seek()
1695 nfsd4_decode_noop(struct nfsd4_compoundargs *argp, void *p) in nfsd4_decode_noop() argument
1701 nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, void *p) in nfsd4_decode_notsupp() argument
1706 typedef __be32(*nfsd4_dec)(struct nfsd4_compoundargs *argp, void *);
1792 nfsd4_opnum_in_range(struct nfsd4_compoundargs *argp, struct nfsd4_op *op) in nfsd4_opnum_in_range() argument
1796 else if (argp->minorversion == 0 && op->opnum > LAST_NFS40_OP) in nfsd4_opnum_in_range()
1798 else if (argp->minorversion == 1 && op->opnum > LAST_NFS41_OP) in nfsd4_opnum_in_range()
1800 else if (argp->minorversion == 2 && op->opnum > LAST_NFS42_OP) in nfsd4_opnum_in_range()
1806 nfsd4_decode_compound(struct nfsd4_compoundargs *argp) in nfsd4_decode_compound() argument
1811 int auth_slack= argp->rqstp->rq_auth_slack; in nfsd4_decode_compound()
1818 argp->taglen = be32_to_cpup(p++); in nfsd4_decode_compound()
1819 READ_BUF(argp->taglen); in nfsd4_decode_compound()
1820 SAVEMEM(argp->tag, argp->taglen); in nfsd4_decode_compound()
1822 argp->minorversion = be32_to_cpup(p++); in nfsd4_decode_compound()
1823 argp->opcnt = be32_to_cpup(p++); in nfsd4_decode_compound()
1824 max_reply += 4 + (XDR_QUADLEN(argp->taglen) << 2); in nfsd4_decode_compound()
1826 if (argp->taglen > NFSD4_MAX_TAGLEN) in nfsd4_decode_compound()
1828 if (argp->opcnt > 100) in nfsd4_decode_compound()
1831 if (argp->opcnt > ARRAY_SIZE(argp->iops)) { in nfsd4_decode_compound()
1832 argp->ops = kzalloc(argp->opcnt * sizeof(*argp->ops), GFP_KERNEL); in nfsd4_decode_compound()
1833 if (!argp->ops) { in nfsd4_decode_compound()
1834 argp->ops = argp->iops; in nfsd4_decode_compound()
1840 if (argp->minorversion > NFSD_SUPPORTED_MINOR_VERSION) in nfsd4_decode_compound()
1841 argp->opcnt = 0; in nfsd4_decode_compound()
1843 for (i = 0; i < argp->opcnt; i++) { in nfsd4_decode_compound()
1844 op = &argp->ops[i]; in nfsd4_decode_compound()
1850 if (nfsd4_opnum_in_range(argp, op)) in nfsd4_decode_compound()
1851 op->status = nfsd4_dec_ops[op->opnum](argp, &op->u); in nfsd4_decode_compound()
1864 readbytes += nfsd4_max_reply(argp->rqstp, op); in nfsd4_decode_compound()
1866 max_reply += nfsd4_max_reply(argp->rqstp, op); in nfsd4_decode_compound()
1877 argp->opcnt = i+1; in nfsd4_decode_compound()
1882 if (argp->minorversion) in nfsd4_decode_compound()
1884 svc_reserve(argp->rqstp, max_reply + readbytes); in nfsd4_decode_compound()
1885 argp->rqstp->rq_cachetype = cachethis ? RC_REPLBUFF : RC_NOCACHE; in nfsd4_decode_compound()
1888 clear_bit(RQ_SPLICE_OK, &argp->rqstp->rq_flags); in nfsd4_decode_compound()