diff options
Diffstat (limited to 'fs/nfsd/nfsd.h')
-rw-r--r-- | fs/nfsd/nfsd.h | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/fs/nfsd/nfsd.h b/fs/nfsd/nfsd.h index 07a473fd49bc..30f34ab02137 100644 --- a/fs/nfsd/nfsd.h +++ b/fs/nfsd/nfsd.h | |||
@@ -24,7 +24,7 @@ | |||
24 | /* | 24 | /* |
25 | * nfsd version | 25 | * nfsd version |
26 | */ | 26 | */ |
27 | #define NFSD_SUPPORTED_MINOR_VERSION 1 | 27 | #define NFSD_SUPPORTED_MINOR_VERSION 2 |
28 | /* | 28 | /* |
29 | * Maximum blocksizes supported by daemon under various circumstances. | 29 | * Maximum blocksizes supported by daemon under various circumstances. |
30 | */ | 30 | */ |
@@ -53,7 +53,6 @@ struct readdir_cd { | |||
53 | extern struct svc_program nfsd_program; | 53 | extern struct svc_program nfsd_program; |
54 | extern struct svc_version nfsd_version2, nfsd_version3, | 54 | extern struct svc_version nfsd_version2, nfsd_version3, |
55 | nfsd_version4; | 55 | nfsd_version4; |
56 | extern u32 nfsd_supported_minorversion; | ||
57 | extern struct mutex nfsd_mutex; | 56 | extern struct mutex nfsd_mutex; |
58 | extern spinlock_t nfsd_drc_lock; | 57 | extern spinlock_t nfsd_drc_lock; |
59 | extern unsigned long nfsd_drc_max_mem; | 58 | extern unsigned long nfsd_drc_max_mem; |
@@ -243,6 +242,12 @@ void nfsd_lockd_shutdown(void); | |||
243 | #define nfserr_reject_deleg cpu_to_be32(NFS4ERR_REJECT_DELEG) | 242 | #define nfserr_reject_deleg cpu_to_be32(NFS4ERR_REJECT_DELEG) |
244 | #define nfserr_returnconflict cpu_to_be32(NFS4ERR_RETURNCONFLICT) | 243 | #define nfserr_returnconflict cpu_to_be32(NFS4ERR_RETURNCONFLICT) |
245 | #define nfserr_deleg_revoked cpu_to_be32(NFS4ERR_DELEG_REVOKED) | 244 | #define nfserr_deleg_revoked cpu_to_be32(NFS4ERR_DELEG_REVOKED) |
245 | #define nfserr_partner_notsupp cpu_to_be32(NFS4ERR_PARTNER_NOTSUPP) | ||
246 | #define nfserr_partner_no_auth cpu_to_be32(NFS4ERR_PARTNER_NO_AUTH) | ||
247 | #define nfserr_metadata_notsupp cpu_to_be32(NFS4ERR_METADATA_NOTSUPP) | ||
248 | #define nfserr_offload_denied cpu_to_be32(NFS4ERR_OFFLOAD_DENIED) | ||
249 | #define nfserr_wrong_lfs cpu_to_be32(NFS4ERR_WRONG_LFS) | ||
250 | #define nfserr_badlabel cpu_to_be32(NFS4ERR_BADLABEL) | ||
246 | 251 | ||
247 | /* error codes for internal use */ | 252 | /* error codes for internal use */ |
248 | /* if a request fails due to kmalloc failure, it gets dropped. | 253 | /* if a request fails due to kmalloc failure, it gets dropped. |
@@ -322,6 +327,13 @@ void nfsd_lockd_shutdown(void); | |||
322 | #define NFSD4_1_SUPPORTED_ATTRS_WORD2 \ | 327 | #define NFSD4_1_SUPPORTED_ATTRS_WORD2 \ |
323 | (NFSD4_SUPPORTED_ATTRS_WORD2 | FATTR4_WORD2_SUPPATTR_EXCLCREAT) | 328 | (NFSD4_SUPPORTED_ATTRS_WORD2 | FATTR4_WORD2_SUPPATTR_EXCLCREAT) |
324 | 329 | ||
330 | #ifdef CONFIG_NFSD_V4_SECURITY_LABEL | ||
331 | #define NFSD4_2_SUPPORTED_ATTRS_WORD2 \ | ||
332 | (NFSD4_1_SUPPORTED_ATTRS_WORD2 | FATTR4_WORD2_SECURITY_LABEL) | ||
333 | #else | ||
334 | #define NFSD4_2_SUPPORTED_ATTRS_WORD2 0 | ||
335 | #endif | ||
336 | |||
325 | static inline u32 nfsd_suppattrs0(u32 minorversion) | 337 | static inline u32 nfsd_suppattrs0(u32 minorversion) |
326 | { | 338 | { |
327 | return minorversion ? NFSD4_1_SUPPORTED_ATTRS_WORD0 | 339 | return minorversion ? NFSD4_1_SUPPORTED_ATTRS_WORD0 |
@@ -336,8 +348,11 @@ static inline u32 nfsd_suppattrs1(u32 minorversion) | |||
336 | 348 | ||
337 | static inline u32 nfsd_suppattrs2(u32 minorversion) | 349 | static inline u32 nfsd_suppattrs2(u32 minorversion) |
338 | { | 350 | { |
339 | return minorversion ? NFSD4_1_SUPPORTED_ATTRS_WORD2 | 351 | switch (minorversion) { |
340 | : NFSD4_SUPPORTED_ATTRS_WORD2; | 352 | default: return NFSD4_2_SUPPORTED_ATTRS_WORD2; |
353 | case 1: return NFSD4_1_SUPPORTED_ATTRS_WORD2; | ||
354 | case 0: return NFSD4_SUPPORTED_ATTRS_WORD2; | ||
355 | } | ||
341 | } | 356 | } |
342 | 357 | ||
343 | /* These will return ERR_INVAL if specified in GETATTR or READDIR. */ | 358 | /* These will return ERR_INVAL if specified in GETATTR or READDIR. */ |
@@ -350,7 +365,11 @@ static inline u32 nfsd_suppattrs2(u32 minorversion) | |||
350 | #define NFSD_WRITEABLE_ATTRS_WORD1 \ | 365 | #define NFSD_WRITEABLE_ATTRS_WORD1 \ |
351 | (FATTR4_WORD1_MODE | FATTR4_WORD1_OWNER | FATTR4_WORD1_OWNER_GROUP \ | 366 | (FATTR4_WORD1_MODE | FATTR4_WORD1_OWNER | FATTR4_WORD1_OWNER_GROUP \ |
352 | | FATTR4_WORD1_TIME_ACCESS_SET | FATTR4_WORD1_TIME_MODIFY_SET) | 367 | | FATTR4_WORD1_TIME_ACCESS_SET | FATTR4_WORD1_TIME_MODIFY_SET) |
368 | #ifdef CONFIG_NFSD_V4_SECURITY_LABEL | ||
369 | #define NFSD_WRITEABLE_ATTRS_WORD2 FATTR4_WORD2_SECURITY_LABEL | ||
370 | #else | ||
353 | #define NFSD_WRITEABLE_ATTRS_WORD2 0 | 371 | #define NFSD_WRITEABLE_ATTRS_WORD2 0 |
372 | #endif | ||
354 | 373 | ||
355 | #define NFSD_SUPPATTR_EXCLCREAT_WORD0 \ | 374 | #define NFSD_SUPPATTR_EXCLCREAT_WORD0 \ |
356 | NFSD_WRITEABLE_ATTRS_WORD0 | 375 | NFSD_WRITEABLE_ATTRS_WORD0 |