Lines Matching defs:rqstp

98 check_attr_support(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
120 nfsd4_check_open_attributes(struct svc_rqst *rqstp,
128 status = check_attr_support(rqstp, cstate,
131 status = check_attr_support(rqstp, cstate,
152 do_set_nfs4_acl(struct svc_rqst *rqstp, struct svc_fh *fhp,
157 status = nfsd4_set_nfs4_acl(rqstp, fhp, acl);
178 do_open_permission(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_open *open, int accmode)
195 status = fh_verify(rqstp, current_fh, S_IFREG, accmode);
227 do_open_lookup(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfsd4_open *open, struct svc_fh **resfh)
260 status = do_nfsd_create(rqstp, current_fh, open->op_fname.data,
285 status = nfsd_lookup(rqstp, current_fh,
294 do_set_nfs4_acl(rqstp, *resfh, open->op_acl, open->op_bmval);
301 status = do_open_permission(rqstp, *resfh, open, accmode);
308 do_open_fhandle(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfsd4_open *open)
336 status = do_open_permission(rqstp, current_fh, open, accmode);
352 nfsd4_open(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
358 struct net *net = SVC_NET(rqstp);
391 status = fh_verify(rqstp, &cstate->current_fh, 0, NFSD_MAY_NOP);
405 status = nfsd4_check_open_attributes(rqstp, cstate, open);
421 status = do_open_lookup(rqstp, cstate, open, &resfh);
435 status = do_open_fhandle(rqstp, cstate, open);
457 status = nfsd4_process_open2(rqstp, resfh, open);
480 static __be32 nfsd4_open_omfg(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfsd4_op *op)
489 return nfsd4_open(rqstp, cstate, &op->u);
496 nfsd4_getfh(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
504 nfsd4_putfh(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
514 ret = fh_verify(rqstp, &cstate->current_fh, 0, NFSD_MAY_BYPASS_GSS);
525 nfsd4_putrootfh(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
531 status = exp_pseudoroot(rqstp, &cstate->current_fh);
536 nfsd4_restorefh(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
551 nfsd4_savefh(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
566 nfsd4_access(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
581 return nfsd_access(rqstp, &cstate->current_fh, &access->ac_resp_access,
595 nfsd4_commit(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
600 return nfsd_commit(rqstp, &cstate->current_fh, commit->co_offset,
606 nfsd4_create(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
616 status = fh_verify(rqstp, &cstate->current_fh, S_IFDIR, NFSD_MAY_NOP);
620 status = check_attr_support(rqstp, cstate, create->cr_bmval,
628 status = nfsd_symlink(rqstp, &cstate->current_fh,
639 status = nfsd_create(rqstp, &cstate->current_fh,
650 status = nfsd_create(rqstp, &cstate->current_fh,
656 status = nfsd_create(rqstp, &cstate->current_fh,
662 status = nfsd_create(rqstp, &cstate->current_fh,
669 status = nfsd_create(rqstp, &cstate->current_fh,
685 do_set_nfs4_acl(rqstp, &resfh, create->cr_acl,
699 nfsd4_getattr(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
705 status = fh_verify(rqstp, &cstate->current_fh, 0, NFSD_MAY_NOP);
721 nfsd4_link(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
727 status = nfsd_link(rqstp, &cstate->current_fh,
734 static __be32 nfsd4_do_lookupp(struct svc_rqst *rqstp, struct svc_fh *fh)
740 ret = exp_pseudoroot(rqstp, &tmp_fh);
748 return nfsd_lookup(rqstp, fh, "..", 2, fh);
752 nfsd4_lookupp(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
755 return nfsd4_do_lookupp(rqstp, &cstate->current_fh);
759 nfsd4_lookup(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
762 return nfsd_lookup(rqstp, &cstate->current_fh,
768 nfsd4_read(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
778 trace_nfsd_read_start(rqstp, &cstate->current_fh,
789 if (!nfsd4_last_compound_op(rqstp))
790 clear_bit(RQ_SPLICE_OK, &rqstp->rq_flags);
793 status = nfs4_preprocess_stateid_op(rqstp, cstate, &cstate->current_fh,
802 read->rd_rqstp = rqstp;
818 nfsd4_readdir(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
838 readdir->rd_rqstp = rqstp;
844 nfsd4_readlink(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
847 u->readlink.rl_rqstp = rqstp;
853 nfsd4_remove(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
859 if (opens_in_grace(SVC_NET(rqstp)))
861 status = nfsd_unlink(rqstp, &cstate->current_fh, 0,
871 nfsd4_rename(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
877 if (opens_in_grace(SVC_NET(rqstp)))
879 status = nfsd_rename(rqstp, &cstate->save_fh, rename->rn_sname,
890 nfsd4_secinfo(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
898 err = fh_verify(rqstp, &cstate->current_fh, S_IFDIR, NFSD_MAY_EXEC);
901 err = nfsd_lookup_dentry(rqstp, &cstate->current_fh,
920 nfsd4_secinfo_no_name(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
929 err = nfsd4_do_lookupp(rqstp, &cstate->current_fh);
957 nfsd4_setattr(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
965 status = nfs4_preprocess_stateid_op(rqstp, cstate,
978 status = check_attr_support(rqstp, cstate, setattr->sa_bmval,
984 status = nfsd4_set_nfs4_acl(rqstp, &cstate->current_fh,
989 status = nfsd4_set_nfs4_label(rqstp, &cstate->current_fh,
993 status = nfsd_setattr(rqstp, &cstate->current_fh, &setattr->sa_iattr,
1001 nfsd4_write(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
1016 trace_nfsd_write_start(rqstp, &cstate->current_fh,
1018 status = nfs4_preprocess_stateid_op(rqstp, cstate, &cstate->current_fh,
1027 nvecs = svc_fill_write_vector(rqstp, write->wr_pagelist,
1029 WARN_ON_ONCE(nvecs > ARRAY_SIZE(rqstp->rq_vec));
1031 status = nfsd_vfs_write(rqstp, &cstate->current_fh, nf,
1032 write->wr_offset, rqstp->rq_vec, nvecs, &cnt,
1038 trace_nfsd_write_done(rqstp, &cstate->current_fh,
1044 nfsd4_verify_copy(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
1053 status = nfs4_preprocess_stateid_op(rqstp, cstate, &cstate->save_fh,
1060 status = nfs4_preprocess_stateid_op(rqstp, cstate, &cstate->current_fh,
1086 nfsd4_clone(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
1093 status = nfsd4_verify_copy(rqstp, cstate, &clone->cl_src_stateid, &src,
1172 nfsd4_interssc_connect(struct nl4_server *nss, struct svc_rqst *rqstp,
1186 tmp_addrlen = rpc_uaddr2sockaddr(SVC_NET(rqstp), naddr->addr,
1261 nfsd4_setup_inter_ssc(struct svc_rqst *rqstp,
1270 status = nfs4_preprocess_stateid_op(rqstp, cstate, &cstate->current_fh,
1276 status = nfsd4_interssc_connect(&copy->cp_src, rqstp, mount);
1306 nfsd4_setup_inter_ssc(struct svc_rqst *rqstp,
1330 nfsd4_setup_intra_ssc(struct svc_rqst *rqstp,
1334 return nfsd4_verify_copy(rqstp, cstate, &copy->cp_src_stateid,
1495 nfsd4_copy(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
1507 status = nfsd4_setup_inter_ssc(rqstp, cstate, copy,
1512 status = nfsd4_setup_intra_ssc(rqstp, cstate, copy);
1521 struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id);
1577 nfsd4_offload_cancel(struct svc_rqst *rqstp,
1587 struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id);
1597 nfsd4_copy_notify(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
1602 struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id);
1607 status = nfs4_preprocess_stateid_op(rqstp, cstate, &cstate->current_fh,
1628 status = nfsd4_set_netaddr((struct sockaddr *)&rqstp->rq_daddr,
1641 nfsd4_fallocate(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
1647 status = nfs4_preprocess_stateid_op(rqstp, cstate, &cstate->current_fh,
1655 status = nfsd4_vfs_fallocate(rqstp, &cstate->current_fh, nf->nf_file,
1663 nfsd4_offload_status(struct svc_rqst *rqstp,
1683 nfsd4_allocate(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
1686 return nfsd4_fallocate(rqstp, cstate, &u->allocate, 0);
1690 nfsd4_deallocate(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
1693 return nfsd4_fallocate(rqstp, cstate, &u->deallocate,
1698 nfsd4_seek(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
1706 status = nfs4_preprocess_stateid_op(rqstp, cstate, &cstate->current_fh,
1747 _nfsd4_verify(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
1754 status = fh_verify(rqstp, &cstate->current_fh, 0, NFSD_MAY_NOP);
1758 status = check_attr_support(rqstp, cstate, verify->ve_bmval, NULL);
1781 rqstp, 0);
1805 nfsd4_nverify(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
1810 status = _nfsd4_verify(rqstp, cstate, &u->verify);
1815 nfsd4_verify(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
1820 status = _nfsd4_verify(rqstp, cstate, &u->nverify);
1844 nfsd4_getdeviceinfo(struct svc_rqst *rqstp,
1866 exp = rqst_exp_find(rqstp, map->fsid_type, map->fsid);
1880 rqstp, cstate->session->se_client, gdp);
1896 nfsd4_layoutget(struct svc_rqst *rqstp,
1920 nfserr = fh_verify(rqstp, current_fh, 0, accmode);
1950 nfserr = nfsd4_preprocess_layout_stateid(rqstp, cstate, &lgp->lg_sid,
1982 nfsd4_layoutcommit(struct svc_rqst *rqstp,
1994 nfserr = fh_verify(rqstp, current_fh, 0, NFSD_MAY_WRITE);
2018 nfserr = nfsd4_preprocess_layout_stateid(rqstp, cstate, &lcp->lc_sid,
2046 nfsd4_layoutreturn(struct svc_rqst *rqstp,
2053 nfserr = fh_verify(rqstp, current_fh, 0, NFSD_MAY_NOP);
2075 nfserr = nfsd4_return_file_layouts(rqstp, cstate, lrp);
2079 nfserr = nfsd4_return_client_layouts(rqstp, cstate, lrp);
2093 nfsd4_getxattr(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
2098 return nfsd_getxattr(rqstp, &cstate->current_fh,
2104 nfsd4_setxattr(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
2110 if (opens_in_grace(SVC_NET(rqstp)))
2113 ret = nfsd_setxattr(rqstp, &cstate->current_fh, setxattr->setxa_name,
2124 nfsd4_listxattrs(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
2131 return nfsd_listxattr(rqstp, &cstate->current_fh,
2136 nfsd4_removexattr(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
2142 if (opens_in_grace(SVC_NET(rqstp)))
2145 ret = nfsd_removexattr(rqstp, &cstate->current_fh,
2158 nfsd4_proc_null(struct svc_rqst *rqstp)
2223 static bool need_wrongsec_check(struct svc_rqst *rqstp)
2225 struct nfsd4_compoundres *resp = rqstp->rq_resp;
2226 struct nfsd4_compoundargs *argp = rqstp->rq_argp;
2256 static void svcxdr_init_encode(struct svc_rqst *rqstp,
2260 struct xdr_buf *buf = &rqstp->rq_res;
2266 xdr->end = head->iov_base + PAGE_SIZE - rqstp->rq_auth_slack;
2271 buf->buflen = PAGE_SIZE * (1 + rqstp->rq_page_end - buf->pages)
2272 - rqstp->rq_auth_slack;
2318 nfsd4_proc_compound(struct svc_rqst *rqstp)
2320 struct nfsd4_compoundargs *args = rqstp->rq_argp;
2321 struct nfsd4_compoundres *resp = rqstp->rq_resp;
2326 struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id);
2329 svcxdr_init_encode(rqstp, resp);
2335 resp->rqstp = rqstp;
2343 clear_bit(RQ_USEDEFERRAL, &rqstp->rq_flags);
2364 rqstp->rq_lease_breaker = (void **)&cstate->clp;
2366 trace_nfsd_compound(rqstp, args->opcnt);
2377 op->status = nfsd4_open_omfg(rqstp, cstate, op);
2401 u32 plen = op->opdesc->op_rsize_bop(rqstp, op);
2416 op->status = op->opdesc->op_func(rqstp, cstate, &op->u);
2432 need_wrongsec_check(rqstp))
2433 op->status = check_nfsd_access(current_fh->fh_export, rqstp);
2458 set_bit(RQ_USEDEFERRAL, &rqstp->rq_flags);
2480 static inline u32 nfsd4_only_status_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2485 static inline u32 nfsd4_status_stateid_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2490 static inline u32 nfsd4_access_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2496 static inline u32 nfsd4_commit_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2501 static inline u32 nfsd4_create_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2512 static inline u32 nfsd4_getattr_rsize(struct svc_rqst *rqstp,
2520 return svc_max_payload(rqstp);
2522 return svc_max_payload(rqstp);
2550 static inline u32 nfsd4_getfh_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2555 static inline u32 nfsd4_link_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2561 static inline u32 nfsd4_lock_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2567 static inline u32 nfsd4_open_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2575 static inline u32 nfsd4_read_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2579 maxcount = svc_max_payload(rqstp);
2585 static inline u32 nfsd4_read_plus_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2587 u32 maxcount = svc_max_payload(rqstp);
2599 static inline u32 nfsd4_readdir_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2603 maxcount = svc_max_payload(rqstp);
2610 static inline u32 nfsd4_readlink_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2615 static inline u32 nfsd4_remove_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2621 static inline u32 nfsd4_rename_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2627 static inline u32 nfsd4_sequence_rsize(struct svc_rqst *rqstp,
2634 static inline u32 nfsd4_test_stateid_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2640 static inline u32 nfsd4_setattr_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2645 static inline u32 nfsd4_secinfo_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2651 static inline u32 nfsd4_setclientid_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2657 static inline u32 nfsd4_write_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2662 static inline u32 nfsd4_exchange_id_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2676 static inline u32 nfsd4_bind_conn_to_session_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2683 static inline u32 nfsd4_create_session_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2692 static inline u32 nfsd4_copy_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2704 static inline u32 nfsd4_offload_status_rsize(struct svc_rqst *rqstp,
2712 static inline u32 nfsd4_copy_notify_rsize(struct svc_rqst *rqstp,
2728 static inline u32 nfsd4_getdeviceinfo_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2732 maxcount = svc_max_payload(rqstp);
2746 static inline u32 nfsd4_layoutget_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2755 static inline u32 nfsd4_layoutcommit_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2762 static inline u32 nfsd4_layoutreturn_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2771 static inline u32 nfsd4_seek_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op)
2776 static inline u32 nfsd4_getxattr_rsize(struct svc_rqst *rqstp,
2781 maxcount = svc_max_payload(rqstp);
2787 static inline u32 nfsd4_setxattr_rsize(struct svc_rqst *rqstp,
2793 static inline u32 nfsd4_listxattrs_rsize(struct svc_rqst *rqstp,
2798 maxcount = svc_max_payload(rqstp);
2804 static inline u32 nfsd4_removexattr_rsize(struct svc_rqst *rqstp,
3228 * @rqstp: a pointer to the struct svc_rqst
3234 bool nfsd4_spo_must_allow(struct svc_rqst *rqstp)
3236 struct nfsd4_compoundres *resp = rqstp->rq_resp;
3237 struct nfsd4_compoundargs *argp = rqstp->rq_argp;
3254 nfsd4_mach_creds_match(cstate->clp, rqstp)) {
3263 int nfsd4_max_reply(struct svc_rqst *rqstp, struct nfsd4_op *op)
3269 return OPDESC(op)->op_rsize_bop(rqstp, op);