diff options
Diffstat (limited to 'include/linux/nfsd/export.h')
-rw-r--r-- | include/linux/nfsd/export.h | 13 |
1 files changed, 12 insertions, 1 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 | /* |