Lines Matching defs:rqstp
59 nfsd_cross_mnt(struct svc_rqst *rqstp, struct dentry **dpp,
78 exp2 = rqst_exp_get_by_name(rqstp, &path);
93 if (nfsd_v4client(rqstp) ||
124 static int nfsd_lookup_parent(struct svc_rqst *rqstp, struct dentry *dparent, struct svc_export **exp, struct dentry **dentryp)
132 exp2 = rqst_exp_parent(rqstp, &path);
173 nfsd_lookup_dentry(struct svc_rqst *rqstp, struct svc_fh *fhp,
193 else if (!EX_NOHIDE(exp) && !nfsd_v4client(rqstp))
197 host_err = nfsd_lookup_parent(rqstp, dparent, &exp, &dentry);
222 if ((host_err = nfsd_cross_mnt(rqstp, &dentry, &exp))) {
250 nfsd_lookup(struct svc_rqst *rqstp, struct svc_fh *fhp, const char *name,
257 err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_EXEC);
260 err = nfsd_lookup_dentry(rqstp, fhp, name, len, &exp, &dentry);
263 err = check_nfsd_access(exp, rqstp);
332 nfsd_get_write_access(struct svc_rqst *rqstp, struct svc_fh *fhp,
341 err = nfsd_permission(rqstp, fhp->fh_export, fhp->fh_dentry,
366 nfsd_setattr(struct svc_rqst *rqstp, struct svc_fh *fhp, struct iattr *iap,
400 err = fh_verify(rqstp, fhp, ftype, accmode);
432 err = nfsd_get_write_access(rqstp, fhp, iap);
507 __be32 nfsd4_set_nfs4_label(struct svc_rqst *rqstp, struct svc_fh *fhp,
514 error = fh_verify(rqstp, fhp, 0 /* S_IFREG */, NFSD_MAY_SATTR);
526 __be32 nfsd4_set_nfs4_label(struct svc_rqst *rqstp, struct svc_fh *fhp,
592 __be32 nfsd4_vfs_fallocate(struct svc_rqst *rqstp, struct svc_fh *fhp,
665 nfsd_access(struct svc_rqst *rqstp, struct svc_fh *fhp, u32 *access, u32 *supported)
673 error = fh_verify(rqstp, fhp, 0, NFSD_MAY_NOP);
695 err2 = nfsd_permission(rqstp, export, dentry, map->how);
740 __nfsd_open(struct svc_rqst *rqstp, struct svc_fh *fhp, umode_t type,
807 nfsd_open(struct svc_rqst *rqstp, struct svc_fh *fhp, umode_t type,
826 err = fh_verify(rqstp, fhp, type, may_flags);
828 err = __nfsd_open(rqstp, fhp, type, may_flags, filp);
834 nfsd_open_verified(struct svc_rqst *rqstp, struct svc_fh *fhp, umode_t type,
840 err = __nfsd_open(rqstp, fhp, type, may_flags, filp);
854 struct svc_rqst *rqstp = sd->u.data;
855 struct page **pp = rqstp->rq_next_page;
861 if (rqstp->rq_res.page_len == 0) {
863 put_page(*rqstp->rq_next_page);
864 *(rqstp->rq_next_page++) = page;
865 rqstp->rq_res.page_base = buf->offset;
866 rqstp->rq_res.page_len = size;
869 if (*rqstp->rq_next_page)
870 put_page(*rqstp->rq_next_page);
871 *(rqstp->rq_next_page++) = page;
872 rqstp->rq_res.page_len += size;
874 rqstp->rq_res.page_len += size;
895 static __be32 nfsd_finish_read(struct svc_rqst *rqstp, struct svc_fh *fhp,
904 trace_nfsd_read_io_done(rqstp, fhp, offset, *count);
907 trace_nfsd_read_err(rqstp, fhp, offset, host_err);
912 __be32 nfsd_splice_read(struct svc_rqst *rqstp, struct svc_fh *fhp,
920 .u.data = rqstp,
924 trace_nfsd_read_splice(rqstp, fhp, offset, *count);
925 rqstp->rq_next_page = rqstp->rq_respages + 1;
927 return nfsd_finish_read(rqstp, fhp, file, offset, count, eof, host_err);
930 __be32 nfsd_readv(struct svc_rqst *rqstp, struct svc_fh *fhp,
939 trace_nfsd_read_vector(rqstp, fhp, offset, *count);
942 return nfsd_finish_read(rqstp, fhp, file, offset, count, eof, host_err);
983 nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct nfsd_file *nf,
999 trace_nfsd_write_opened(rqstp, fhp, offset, *cnt);
1001 if (test_bit(RQ_LOCAL, &rqstp->rq_flags))
1012 use_wgather = (rqstp->rq_vers == 2) && EX_WGATHER(exp);
1025 net_generic(SVC_NET(rqstp),
1029 nfsd_reset_boot_verifier(net_generic(SVC_NET(rqstp),
1034 net_generic(SVC_NET(rqstp),
1039 nfsd_reset_boot_verifier(net_generic(SVC_NET(rqstp),
1053 nfsd_reset_boot_verifier(net_generic(SVC_NET(rqstp),
1059 trace_nfsd_write_io_done(rqstp, fhp, offset, *cnt);
1062 trace_nfsd_write_err(rqstp, fhp, offset, host_err);
1065 if (test_bit(RQ_LOCAL, &rqstp->rq_flags))
1075 __be32 nfsd_read(struct svc_rqst *rqstp, struct svc_fh *fhp,
1083 trace_nfsd_read_start(rqstp, fhp, offset, *count);
1084 err = nfsd_file_acquire(rqstp, fhp, NFSD_MAY_READ, &nf);
1089 if (file->f_op->splice_read && test_bit(RQ_SPLICE_OK, &rqstp->rq_flags))
1090 err = nfsd_splice_read(rqstp, fhp, file, offset, count, eof);
1092 err = nfsd_readv(rqstp, fhp, file, offset, vec, vlen, count, eof);
1096 trace_nfsd_read_done(rqstp, fhp, offset, *count);
1107 nfsd_write(struct svc_rqst *rqstp, struct svc_fh *fhp, loff_t offset,
1114 trace_nfsd_write_start(rqstp, fhp, offset, *cnt);
1116 err = nfsd_file_acquire(rqstp, fhp, NFSD_MAY_WRITE, &nf);
1120 err = nfsd_vfs_write(rqstp, fhp, nf, offset, vec,
1124 trace_nfsd_write_done(rqstp, fhp, offset, *cnt);
1139 nfsd_commit(struct svc_rqst *rqstp, struct svc_fh *fhp,
1154 err = nfsd_file_acquire(rqstp, fhp,
1190 nfsd_create_setattr(struct svc_rqst *rqstp, struct svc_fh *resfhp,
1205 return nfsd_setattr(rqstp, resfhp, iap, 0, (time64_t)0);
1227 nfsd_create_locked(struct svc_rqst *rqstp, struct svc_fh *fhp,
1248 err = nfsd_permission(rqstp, fhp->fh_export, dentry, NFSD_MAY_CREATE);
1306 err = nfsd_create_setattr(rqstp, resfhp, iap);
1338 nfsd_create(struct svc_rqst *rqstp, struct svc_fh *fhp,
1349 err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_NOP);
1372 return nfsd_create_locked(rqstp, fhp, fname, flen, iap, type,
1382 do_nfsd_create(struct svc_rqst *rqstp, struct svc_fh *fhp,
1401 err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_EXEC);
1424 err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_CREATE);
1516 err = nfsd_create_setattr(rqstp, resfhp, iap);
1550 nfsd_readlink(struct svc_rqst *rqstp, struct svc_fh *fhp, char *buf, int *lenp)
1558 err = fh_verify(rqstp, fhp, S_IFLNK, NFSD_MAY_NOP);
1587 nfsd_symlink(struct svc_rqst *rqstp, struct svc_fh *fhp,
1603 err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_CREATE);
1642 nfsd_link(struct svc_rqst *rqstp, struct svc_fh *ffhp,
1650 err = fh_verify(rqstp, ffhp, S_IFDIR, NFSD_MAY_CREATE);
1653 err = fh_verify(rqstp, tfhp, 0, NFSD_MAY_NOP);
1692 if (host_err == -EXDEV && rqstp->rq_vers == 2)
1735 nfsd_rename(struct svc_rqst *rqstp, struct svc_fh *ffhp, char *fname, int flen,
1744 err = fh_verify(rqstp, ffhp, S_IFDIR, NFSD_MAY_REMOVE);
1747 err = fh_verify(rqstp, tfhp, S_IFDIR, NFSD_MAY_CREATE);
1761 err = (rqstp->rq_vers == 2) ? nfserr_acces : nfserr_xdev;
1852 nfsd_unlink(struct svc_rqst *rqstp, struct svc_fh *fhp, int type,
1863 err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_REMOVE);
1907 if (nfsd_v4client(rqstp))
2037 nfsd_readdir(struct svc_rqst *rqstp, struct svc_fh *fhp, loff_t *offsetp,
2046 if (rqstp->rq_vers > 2)
2049 err = nfsd_open(rqstp, fhp, S_IFDIR, may_flags, &file);
2074 nfsd_statfs(struct svc_rqst *rqstp, struct svc_fh *fhp, struct kstatfs *stat, int access)
2078 err = fh_verify(rqstp, fhp, 0, NFSD_MAY_NOP | access);
2090 static int exp_rdonly(struct svc_rqst *rqstp, struct svc_export *exp)
2092 return nfsexp_flags(rqstp, exp) & NFSEXP_READONLY;
2137 nfsd_getxattr(struct svc_rqst *rqstp, struct svc_fh *fhp, char *name,
2146 err = fh_verify(rqstp, fhp, 0, NFSD_MAY_READ);
2210 nfsd_listxattr(struct svc_rqst *rqstp, struct svc_fh *fhp, char **bufp,
2219 err = fh_verify(rqstp, fhp, 0, NFSD_MAY_READ);
2275 nfsd_removexattr(struct svc_rqst *rqstp, struct svc_fh *fhp, char *name)
2280 err = fh_verify(rqstp, fhp, 0, NFSD_MAY_WRITE);
2299 nfsd_setxattr(struct svc_rqst *rqstp, struct svc_fh *fhp, char *name,
2305 err = fh_verify(rqstp, fhp, 0, NFSD_MAY_WRITE);
2328 nfsd_permission(struct svc_rqst *rqstp, struct svc_export *exp,
2360 if (exp_rdonly(rqstp, exp) ||