aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/nfsd
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/nfsd')
-rw-r--r--include/linux/nfsd/export.h13
-rw-r--r--include/linux/nfsd/nfsd.h3
2 files changed, 14 insertions, 2 deletions
diff --git a/include/linux/nfsd/export.h b/include/linux/nfsd/export.h
index 424be41130ba..a01f775cb944 100644
--- a/include/linux/nfsd/export.h
+++ b/include/linux/nfsd/export.h
@@ -112,10 +112,21 @@ struct svc_expkey {
112 112
113#define EX_SECURE(exp) (!((exp)->ex_flags & NFSEXP_INSECURE_PORT)) 113#define EX_SECURE(exp) (!((exp)->ex_flags & NFSEXP_INSECURE_PORT))
114#define EX_ISSYNC(exp) (!((exp)->ex_flags & NFSEXP_ASYNC)) 114#define EX_ISSYNC(exp) (!((exp)->ex_flags & NFSEXP_ASYNC))
115#define EX_RDONLY(exp) ((exp)->ex_flags & NFSEXP_READONLY)
116#define EX_NOHIDE(exp) ((exp)->ex_flags & NFSEXP_NOHIDE) 115#define EX_NOHIDE(exp) ((exp)->ex_flags & NFSEXP_NOHIDE)
117#define EX_WGATHER(exp) ((exp)->ex_flags & NFSEXP_GATHERED_WRITES) 116#define EX_WGATHER(exp) ((exp)->ex_flags & NFSEXP_GATHERED_WRITES)
118 117
118static inline int EX_RDONLY(struct svc_export *exp, struct svc_rqst *rqstp)
119{
120 struct exp_flavor_info *f;
121 struct exp_flavor_info *end = exp->ex_flavors + exp->ex_nflavors;
122
123 for (f = exp->ex_flavors; f < end; f++) {
124 if (f->pseudoflavor == rqstp->rq_flavor)
125 return f->flags & NFSEXP_READONLY;
126 }
127 return exp->ex_flags & NFSEXP_READONLY;
128}
129
119__be32 check_nfsd_access(struct svc_export *exp, struct svc_rqst *rqstp); 130__be32 check_nfsd_access(struct svc_export *exp, struct svc_rqst *rqstp);
120 131
121/* 132/*
diff --git a/include/linux/nfsd/nfsd.h b/include/linux/nfsd/nfsd.h
index 62499c2f0918..54ef1a18a56c 100644
--- a/include/linux/nfsd/nfsd.h
+++ b/include/linux/nfsd/nfsd.h
@@ -119,7 +119,8 @@ __be32 nfsd_statfs(struct svc_rqst *, struct svc_fh *,
119 struct kstatfs *); 119 struct kstatfs *);
120 120
121int nfsd_notify_change(struct inode *, struct iattr *); 121int nfsd_notify_change(struct inode *, struct iattr *);
122__be32 nfsd_permission(struct svc_export *, struct dentry *, int); 122__be32 nfsd_permission(struct svc_rqst *, struct svc_export *,
123 struct dentry *, int);
123int nfsd_sync_dir(struct dentry *dp); 124int nfsd_sync_dir(struct dentry *dp);
124 125
125#if defined(CONFIG_NFSD_V2_ACL) || defined(CONFIG_NFSD_V3_ACL) 126#if defined(CONFIG_NFSD_V2_ACL) || defined(CONFIG_NFSD_V3_ACL)