diff options
Diffstat (limited to 'include/linux/nfsd')
-rw-r--r-- | include/linux/nfsd/export.h | 13 | ||||
-rw-r--r-- | include/linux/nfsd/nfsd.h | 3 |
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 | ||
118 | static 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 | ||
121 | int nfsd_notify_change(struct inode *, struct iattr *); | 121 | int 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); | ||
123 | int nfsd_sync_dir(struct dentry *dp); | 124 | int 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) |