• Home
  • Raw
  • Download

Lines Matching refs:argp

116 	if (!(x = (p==argp->tmp || p == argp->tmpp) ? \
117 savemem(argp, p, nbytes) : \
132 if (nbytes <= (u32)((char *)argp->end - (char *)argp->p)) { \
133 p = argp->p; \
134 argp->p += XDR_QUADLEN(nbytes); \
135 } else if (!(p = read_buf(argp, nbytes))) { \
142 static void next_decode_page(struct nfsd4_compoundargs *argp) in next_decode_page() argument
144 argp->p = page_address(argp->pagelist[0]); in next_decode_page()
145 argp->pagelist++; in next_decode_page()
146 if (argp->pagelen < PAGE_SIZE) { in next_decode_page()
147 argp->end = argp->p + XDR_QUADLEN(argp->pagelen); in next_decode_page()
148 argp->pagelen = 0; in next_decode_page()
150 argp->end = argp->p + (PAGE_SIZE>>2); in next_decode_page()
151 argp->pagelen -= PAGE_SIZE; in next_decode_page()
155 static __be32 *read_buf(struct nfsd4_compoundargs *argp, u32 nbytes) in read_buf() argument
160 unsigned int avail = (char *)argp->end - (char *)argp->p; in read_buf()
163 if (argp->pagelen == 0) { in read_buf()
164 struct kvec *vec = &argp->rqstp->rq_arg.tail[0]; in read_buf()
166 if (!argp->tail) { in read_buf()
167 argp->tail = true; in read_buf()
169 argp->p = vec->iov_base; in read_buf()
170 argp->end = vec->iov_base + avail; in read_buf()
176 p = argp->p; in read_buf()
177 argp->p += XDR_QUADLEN(nbytes); in read_buf()
181 if (avail + argp->pagelen < nbytes) in read_buf()
186 if (nbytes <= sizeof(argp->tmp)) in read_buf()
187 p = argp->tmp; in read_buf()
189 kfree(argp->tmpp); in read_buf()
190 p = argp->tmpp = kmalloc(nbytes, GFP_KERNEL); in read_buf()
200 memcpy(p, argp->p, avail); in read_buf()
201 next_decode_page(argp); in read_buf()
202 memcpy(((char*)p)+avail, argp->p, (nbytes - avail)); in read_buf()
203 argp->p += XDR_QUADLEN(nbytes - avail); in read_buf()
207 static unsigned int compoundargs_bytes_left(struct nfsd4_compoundargs *argp) in compoundargs_bytes_left() argument
209 unsigned int this = (char *)argp->end - (char *)argp->p; in compoundargs_bytes_left()
211 return this + argp->pagelen; in compoundargs_bytes_left()
228 svcxdr_tmpalloc(struct nfsd4_compoundargs *argp, u32 len) in svcxdr_tmpalloc() argument
235 tb->next = argp->to_free; in svcxdr_tmpalloc()
236 argp->to_free = tb; in svcxdr_tmpalloc()
248 svcxdr_dupstr(struct nfsd4_compoundargs *argp, void *buf, u32 len) in svcxdr_dupstr() argument
250 char *p = svcxdr_tmpalloc(argp, len + 1); in svcxdr_dupstr()
269 static char *savemem(struct nfsd4_compoundargs *argp, __be32 *p, int nbytes) in savemem() argument
273 ret = svcxdr_tmpalloc(argp, nbytes); in savemem()
281 nfsd4_decode_time(struct nfsd4_compoundargs *argp, struct timespec64 *tv) in nfsd4_decode_time() argument
295 nfsd4_decode_bitmap(struct nfsd4_compoundargs *argp, u32 *bmval) in nfsd4_decode_bitmap() argument
321 nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval, in nfsd4_decode_fattr() argument
331 if ((status = nfsd4_decode_bitmap(argp, bmval))) in nfsd4_decode_fattr()
337 if (nfsd_attrs_supported(argp->minorversion, bmval)) in nfsd4_decode_fattr()
358 if (nace > compoundargs_bytes_left(argp)/20) in nfsd4_decode_fattr()
366 *acl = svcxdr_tmpalloc(argp, nfs4_acl_bytes(nace)); in nfsd4_decode_fattr()
385 status = nfsd_map_name_to_gid(argp->rqstp, in nfsd4_decode_fattr()
388 status = nfsd_map_name_to_uid(argp->rqstp, in nfsd4_decode_fattr()
409 if ((status = nfsd_map_name_to_uid(argp->rqstp, buf, dummy32, &iattr->ia_uid))) in nfsd4_decode_fattr()
420 if ((status = nfsd_map_name_to_gid(argp->rqstp, buf, dummy32, &iattr->ia_gid))) in nfsd4_decode_fattr()
431 status = nfsd4_decode_time(argp, &iattr->ia_atime); in nfsd4_decode_fattr()
450 status = nfsd4_decode_time(argp, &iattr->ia_mtime); in nfsd4_decode_fattr()
481 label->data = svcxdr_dupstr(argp, buf, dummy32); in nfsd4_decode_fattr()
503 nfsd4_decode_stateid(struct nfsd4_compoundargs *argp, stateid_t *sid) in nfsd4_decode_stateid() argument
515 nfsd4_decode_access(struct nfsd4_compoundargs *argp, struct nfsd4_access *access) in nfsd4_decode_access() argument
525 static __be32 nfsd4_decode_cb_sec(struct nfsd4_compoundargs *argp, struct nfsd4_cb_sec *cbs) in nfsd4_decode_cb_sec() argument
528 struct user_namespace *userns = nfsd_user_namespace(argp->rqstp); in nfsd4_decode_cb_sec()
606 static __be32 nfsd4_decode_backchannel_ctl(struct nfsd4_compoundargs *argp, struct nfsd4_backchanne… in nfsd4_decode_backchannel_ctl() argument
612 nfsd4_decode_cb_sec(argp, &bc->bc_cb_sec); in nfsd4_decode_backchannel_ctl()
617 static __be32 nfsd4_decode_bind_conn_to_session(struct nfsd4_compoundargs *argp, struct nfsd4_bind_… in nfsd4_decode_bind_conn_to_session() argument
630 nfsd4_decode_close(struct nfsd4_compoundargs *argp, struct nfsd4_close *close) in nfsd4_decode_close() argument
636 return nfsd4_decode_stateid(argp, &close->cl_stateid); in nfsd4_decode_close()
643 nfsd4_decode_commit(struct nfsd4_compoundargs *argp, struct nfsd4_commit *commit) in nfsd4_decode_commit() argument
655 nfsd4_decode_create(struct nfsd4_compoundargs *argp, struct nfsd4_create *create) in nfsd4_decode_create() argument
666 create->cr_data = svcxdr_dupstr(argp, p, create->cr_datalen); in nfsd4_decode_create()
690 status = nfsd4_decode_fattr(argp, create->cr_bmval, &create->cr_iattr, in nfsd4_decode_create()
700 nfsd4_decode_delegreturn(struct nfsd4_compoundargs *argp, struct nfsd4_delegreturn *dr) in nfsd4_decode_delegreturn() argument
702 return nfsd4_decode_stateid(argp, &dr->dr_stateid); in nfsd4_decode_delegreturn()
706 nfsd4_decode_getattr(struct nfsd4_compoundargs *argp, struct nfsd4_getattr *getattr) in nfsd4_decode_getattr() argument
708 return nfsd4_decode_bitmap(argp, getattr->ga_bmval); in nfsd4_decode_getattr()
712 nfsd4_decode_link(struct nfsd4_compoundargs *argp, struct nfsd4_link *link) in nfsd4_decode_link() argument
727 nfsd4_decode_lock(struct nfsd4_compoundargs *argp, struct nfsd4_lock *lock) in nfsd4_decode_lock() argument
746 status = nfsd4_decode_stateid(argp, &lock->lk_new_open_stateid); in nfsd4_decode_lock()
756 status = nfsd4_decode_stateid(argp, &lock->lk_old_lock_stateid); in nfsd4_decode_lock()
767 nfsd4_decode_lockt(struct nfsd4_compoundargs *argp, struct nfsd4_lockt *lockt) in nfsd4_decode_lockt() argument
786 nfsd4_decode_locku(struct nfsd4_compoundargs *argp, struct nfsd4_locku *locku) in nfsd4_decode_locku() argument
795 status = nfsd4_decode_stateid(argp, &locku->lu_stateid); in nfsd4_decode_locku()
806 nfsd4_decode_lookup(struct nfsd4_compoundargs *argp, struct nfsd4_lookup *lookup) in nfsd4_decode_lookup() argument
820 static __be32 nfsd4_decode_share_access(struct nfsd4_compoundargs *argp, u32 *share_access, u32 *de… in nfsd4_decode_share_access() argument
843 if (!argp->minorversion) in nfsd4_decode_share_access()
873 static __be32 nfsd4_decode_share_deny(struct nfsd4_compoundargs *argp, u32 *x) in nfsd4_decode_share_deny() argument
887 static __be32 nfsd4_decode_opaque(struct nfsd4_compoundargs *argp, struct xdr_netobj *o) in nfsd4_decode_opaque() argument
905 nfsd4_decode_open(struct nfsd4_compoundargs *argp, struct nfsd4_open *open) in nfsd4_decode_open() argument
919 status = nfsd4_decode_share_access(argp, &open->op_share_access, in nfsd4_decode_open()
923 status = nfsd4_decode_share_deny(argp, &open->op_share_deny); in nfsd4_decode_open()
928 status = nfsd4_decode_opaque(argp, &open->op_owner); in nfsd4_decode_open()
942 status = nfsd4_decode_fattr(argp, open->op_bmval, in nfsd4_decode_open()
953 if (argp->minorversion < 1) in nfsd4_decode_open()
957 status = nfsd4_decode_fattr(argp, open->op_bmval, in nfsd4_decode_open()
989 status = nfsd4_decode_stateid(argp, &open->op_delegate_stateid); in nfsd4_decode_open()
1001 if (argp->minorversion < 1) in nfsd4_decode_open()
1006 if (argp->minorversion < 1) in nfsd4_decode_open()
1008 status = nfsd4_decode_stateid(argp, &open->op_delegate_stateid); in nfsd4_decode_open()
1020 nfsd4_decode_open_confirm(struct nfsd4_compoundargs *argp, struct nfsd4_open_confirm *open_conf) in nfsd4_decode_open_confirm() argument
1024 if (argp->minorversion >= 1) in nfsd4_decode_open_confirm()
1027 status = nfsd4_decode_stateid(argp, &open_conf->oc_req_stateid); in nfsd4_decode_open_confirm()
1037 nfsd4_decode_open_downgrade(struct nfsd4_compoundargs *argp, struct nfsd4_open_downgrade *open_down) in nfsd4_decode_open_downgrade() argument
1041 status = nfsd4_decode_stateid(argp, &open_down->od_stateid); in nfsd4_decode_open_downgrade()
1046 status = nfsd4_decode_share_access(argp, &open_down->od_share_access, in nfsd4_decode_open_downgrade()
1050 status = nfsd4_decode_share_deny(argp, &open_down->od_share_deny); in nfsd4_decode_open_downgrade()
1057 nfsd4_decode_putfh(struct nfsd4_compoundargs *argp, struct nfsd4_putfh *putfh) in nfsd4_decode_putfh() argument
1072 nfsd4_decode_putpubfh(struct nfsd4_compoundargs *argp, void *p) in nfsd4_decode_putpubfh() argument
1074 if (argp->minorversion == 0) in nfsd4_decode_putpubfh()
1080 nfsd4_decode_read(struct nfsd4_compoundargs *argp, struct nfsd4_read *read) in nfsd4_decode_read() argument
1084 status = nfsd4_decode_stateid(argp, &read->rd_stateid); in nfsd4_decode_read()
1095 nfsd4_decode_readdir(struct nfsd4_compoundargs *argp, struct nfsd4_readdir *readdir) in nfsd4_decode_readdir() argument
1104 if ((status = nfsd4_decode_bitmap(argp, readdir->rd_bmval))) in nfsd4_decode_readdir()
1111 nfsd4_decode_remove(struct nfsd4_compoundargs *argp, struct nfsd4_remove *remove) in nfsd4_decode_remove() argument
1126 nfsd4_decode_rename(struct nfsd4_compoundargs *argp, struct nfsd4_rename *rename) in nfsd4_decode_rename() argument
1147 nfsd4_decode_renew(struct nfsd4_compoundargs *argp, clientid_t *clientid) in nfsd4_decode_renew() argument
1151 if (argp->minorversion >= 1) in nfsd4_decode_renew()
1161 nfsd4_decode_secinfo(struct nfsd4_compoundargs *argp, in nfsd4_decode_secinfo() argument
1177 nfsd4_decode_secinfo_no_name(struct nfsd4_compoundargs *argp, in nfsd4_decode_secinfo_no_name() argument
1188 nfsd4_decode_setattr(struct nfsd4_compoundargs *argp, struct nfsd4_setattr *setattr) in nfsd4_decode_setattr() argument
1192 status = nfsd4_decode_stateid(argp, &setattr->sa_stateid); in nfsd4_decode_setattr()
1195 return nfsd4_decode_fattr(argp, setattr->sa_bmval, &setattr->sa_iattr, in nfsd4_decode_setattr()
1200 nfsd4_decode_setclientid(struct nfsd4_compoundargs *argp, struct nfsd4_setclientid *setclientid) in nfsd4_decode_setclientid() argument
1204 if (argp->minorversion >= 1) in nfsd4_decode_setclientid()
1210 status = nfsd4_decode_opaque(argp, &setclientid->se_name); in nfsd4_decode_setclientid()
1230 nfsd4_decode_setclientid_confirm(struct nfsd4_compoundargs *argp, struct nfsd4_setclientid_confirm … in nfsd4_decode_setclientid_confirm() argument
1234 if (argp->minorversion >= 1) in nfsd4_decode_setclientid_confirm()
1246 nfsd4_decode_verify(struct nfsd4_compoundargs *argp, struct nfsd4_verify *verify) in nfsd4_decode_verify() argument
1250 if ((status = nfsd4_decode_bitmap(argp, verify->ve_bmval))) in nfsd4_decode_verify()
1265 nfsd4_decode_write(struct nfsd4_compoundargs *argp, struct nfsd4_write *write) in nfsd4_decode_write() argument
1271 status = nfsd4_decode_stateid(argp, &write->wr_stateid); in nfsd4_decode_write()
1285 avail = (char*)argp->end - (char*)argp->p; in nfsd4_decode_write()
1286 if (avail + argp->pagelen < write->wr_buflen) { in nfsd4_decode_write()
1293 write->wr_pagelist = argp->pagelist; in nfsd4_decode_write()
1302 argp->pagelist += pages; in nfsd4_decode_write()
1303 argp->pagelen -= pages * PAGE_SIZE; in nfsd4_decode_write()
1306 next_decode_page(argp); in nfsd4_decode_write()
1308 argp->p += XDR_QUADLEN(len); in nfsd4_decode_write()
1314 nfsd4_decode_release_lockowner(struct nfsd4_compoundargs *argp, struct nfsd4_release_lockowner *rlo… in nfsd4_decode_release_lockowner() argument
1318 if (argp->minorversion >= 1) in nfsd4_decode_release_lockowner()
1327 if (argp->minorversion && !zero_clientid(&rlockowner->rl_clientid)) in nfsd4_decode_release_lockowner()
1333 nfsd4_decode_exchange_id(struct nfsd4_compoundargs *argp, in nfsd4_decode_exchange_id() argument
1342 status = nfsd4_decode_opaque(argp, &exid->clname); in nfsd4_decode_exchange_id()
1357 status = nfsd4_decode_bitmap(argp, in nfsd4_decode_exchange_id()
1362 status = nfsd4_decode_bitmap(argp, exid->spo_must_allow); in nfsd4_decode_exchange_id()
1412 status = nfsd4_decode_opaque(argp, &exid->nii_domain); in nfsd4_decode_exchange_id()
1417 status = nfsd4_decode_opaque(argp, &exid->nii_name); in nfsd4_decode_exchange_id()
1422 status = nfsd4_decode_time(argp, &exid->nii_time); in nfsd4_decode_exchange_id()
1430 nfsd4_decode_create_session(struct nfsd4_compoundargs *argp, in nfsd4_decode_create_session() argument
1476 nfsd4_decode_cb_sec(argp, &sess->cb_sec); in nfsd4_decode_create_session()
1481 nfsd4_decode_destroy_session(struct nfsd4_compoundargs *argp, in nfsd4_decode_destroy_session() argument
1492 nfsd4_decode_free_stateid(struct nfsd4_compoundargs *argp, in nfsd4_decode_free_stateid() argument
1505 nfsd4_decode_sequence(struct nfsd4_compoundargs *argp, in nfsd4_decode_sequence() argument
1521 nfsd4_decode_test_stateid(struct nfsd4_compoundargs *argp, struct nfsd4_test_stateid *test_stateid) in nfsd4_decode_test_stateid() argument
1533 stateid = svcxdr_tmpalloc(argp, sizeof(*stateid)); in nfsd4_decode_test_stateid()
1542 status = nfsd4_decode_stateid(argp, &stateid->ts_id_stateid); in nfsd4_decode_test_stateid()
1556 static __be32 nfsd4_decode_destroy_clientid(struct nfsd4_compoundargs *argp, struct nfsd4_destroy_c… in nfsd4_decode_destroy_clientid() argument
1566 static __be32 nfsd4_decode_reclaim_complete(struct nfsd4_compoundargs *argp, struct nfsd4_reclaim_c… in nfsd4_decode_reclaim_complete() argument
1578 nfsd4_decode_getdeviceinfo(struct nfsd4_compoundargs *argp, in nfsd4_decode_getdeviceinfo() argument
1605 nfsd4_decode_layoutget(struct nfsd4_compoundargs *argp, in nfsd4_decode_layoutget() argument
1618 status = nfsd4_decode_stateid(argp, &lgp->lg_sid); in nfsd4_decode_layoutget()
1629 nfsd4_decode_layoutcommit(struct nfsd4_compoundargs *argp, in nfsd4_decode_layoutcommit() argument
1640 status = nfsd4_decode_stateid(argp, &lcp->lc_sid); in nfsd4_decode_layoutcommit()
1654 status = nfsd4_decode_time(argp, &lcp->lc_mtime); in nfsd4_decode_layoutcommit()
1677 nfsd4_decode_layoutreturn(struct nfsd4_compoundargs *argp, in nfsd4_decode_layoutreturn() argument
1692 status = nfsd4_decode_stateid(argp, &lrp->lr_sid); in nfsd4_decode_layoutreturn()
1712 nfsd4_decode_fallocate(struct nfsd4_compoundargs *argp, in nfsd4_decode_fallocate() argument
1717 status = nfsd4_decode_stateid(argp, &fallocate->falloc_stateid); in nfsd4_decode_fallocate()
1729 nfsd4_decode_clone(struct nfsd4_compoundargs *argp, struct nfsd4_clone *clone) in nfsd4_decode_clone() argument
1733 status = nfsd4_decode_stateid(argp, &clone->cl_src_stateid); in nfsd4_decode_clone()
1736 status = nfsd4_decode_stateid(argp, &clone->cl_dst_stateid); in nfsd4_decode_clone()
1748 nfsd4_decode_copy(struct nfsd4_compoundargs *argp, struct nfsd4_copy *copy) in nfsd4_decode_copy() argument
1752 status = nfsd4_decode_stateid(argp, &copy->cp_src_stateid); in nfsd4_decode_copy()
1755 status = nfsd4_decode_stateid(argp, &copy->cp_dst_stateid); in nfsd4_decode_copy()
1771 nfsd4_decode_offload_status(struct nfsd4_compoundargs *argp, in nfsd4_decode_offload_status() argument
1774 return nfsd4_decode_stateid(argp, &os->stateid); in nfsd4_decode_offload_status()
1778 nfsd4_decode_seek(struct nfsd4_compoundargs *argp, struct nfsd4_seek *seek) in nfsd4_decode_seek() argument
1782 status = nfsd4_decode_stateid(argp, &seek->seek_stateid); in nfsd4_decode_seek()
1794 nfsd4_decode_noop(struct nfsd4_compoundargs *argp, void *p) in nfsd4_decode_noop() argument
1800 nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, void *p) in nfsd4_decode_notsupp() argument
1805 typedef __be32(*nfsd4_dec)(struct nfsd4_compoundargs *argp, void *);
1892 nfsd4_opnum_in_range(struct nfsd4_compoundargs *argp, struct nfsd4_op *op) in nfsd4_opnum_in_range() argument
1896 else if (argp->minorversion == 0 && op->opnum > LAST_NFS40_OP) in nfsd4_opnum_in_range()
1898 else if (argp->minorversion == 1 && op->opnum > LAST_NFS41_OP) in nfsd4_opnum_in_range()
1900 else if (argp->minorversion == 2 && op->opnum > LAST_NFS42_OP) in nfsd4_opnum_in_range()
1906 nfsd4_decode_compound(struct nfsd4_compoundargs *argp) in nfsd4_decode_compound() argument
1911 int auth_slack= argp->rqstp->rq_auth_slack; in nfsd4_decode_compound()
1918 argp->taglen = be32_to_cpup(p++); in nfsd4_decode_compound()
1919 READ_BUF(argp->taglen); in nfsd4_decode_compound()
1920 SAVEMEM(argp->tag, argp->taglen); in nfsd4_decode_compound()
1922 argp->minorversion = be32_to_cpup(p++); in nfsd4_decode_compound()
1923 argp->opcnt = be32_to_cpup(p++); in nfsd4_decode_compound()
1924 max_reply += 4 + (XDR_QUADLEN(argp->taglen) << 2); in nfsd4_decode_compound()
1926 if (argp->taglen > NFSD4_MAX_TAGLEN) in nfsd4_decode_compound()
1933 if (argp->opcnt > NFSD_MAX_OPS_PER_COMPOUND) in nfsd4_decode_compound()
1936 if (argp->opcnt > ARRAY_SIZE(argp->iops)) { in nfsd4_decode_compound()
1937 argp->ops = kzalloc(argp->opcnt * sizeof(*argp->ops), GFP_KERNEL); in nfsd4_decode_compound()
1938 if (!argp->ops) { in nfsd4_decode_compound()
1939 argp->ops = argp->iops; in nfsd4_decode_compound()
1945 if (argp->minorversion > NFSD_SUPPORTED_MINOR_VERSION) in nfsd4_decode_compound()
1946 argp->opcnt = 0; in nfsd4_decode_compound()
1948 for (i = 0; i < argp->opcnt; i++) { in nfsd4_decode_compound()
1949 op = &argp->ops[i]; in nfsd4_decode_compound()
1955 if (nfsd4_opnum_in_range(argp, op)) in nfsd4_decode_compound()
1956 op->status = nfsd4_dec_ops[op->opnum](argp, &op->u); in nfsd4_decode_compound()
1970 readbytes += nfsd4_max_reply(argp->rqstp, op); in nfsd4_decode_compound()
1972 max_reply += nfsd4_max_reply(argp->rqstp, op); in nfsd4_decode_compound()
1983 argp->opcnt = i+1; in nfsd4_decode_compound()
1988 if (argp->minorversion) in nfsd4_decode_compound()
1990 svc_reserve(argp->rqstp, max_reply + readbytes); in nfsd4_decode_compound()
1991 argp->rqstp->rq_cachetype = cachethis ? RC_REPLBUFF : RC_NOCACHE; in nfsd4_decode_compound()
1994 clear_bit(RQ_SPLICE_OK, &argp->rqstp->rq_flags); in nfsd4_decode_compound()