diff options
author | David Quigley <dpquigl@davequigley.com> | 2013-05-02 13:19:10 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2013-05-15 09:27:02 -0400 |
commit | 18032ca062e621e15683cb61c066ef3dc5414a7b (patch) | |
tree | 18b061105452a5d47a85c0f693a151227ff3c02c /fs/nfsd/nfsd.h | |
parent | 4bdc33ed5bd9fbaa243bda6fdccb22674aed6305 (diff) |
NFSD: Server implementation of MAC Labeling
Implement labeled NFS on the server: encoding and decoding, and writing
and reading, of file labels.
Enabled with CONFIG_NFSD_V4_SECURITY_LABEL.
Signed-off-by: Matthew N. Dodd <Matthew.Dodd@sparta.com>
Signed-off-by: Miguel Rodel Felipe <Rodel_FM@dsi.a-star.edu.sg>
Signed-off-by: Phua Eu Gene <PHUA_Eu_Gene@dsi.a-star.edu.sg>
Signed-off-by: Khin Mi Mi Aung <Mi_Mi_AUNG@dsi.a-star.edu.sg>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/nfsd.h')
-rw-r--r-- | fs/nfsd/nfsd.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/fs/nfsd/nfsd.h b/fs/nfsd/nfsd.h index 15e7e1d531f0..2bbd94e51efc 100644 --- a/fs/nfsd/nfsd.h +++ b/fs/nfsd/nfsd.h | |||
@@ -328,6 +328,13 @@ void nfsd_lockd_shutdown(void); | |||
328 | #define NFSD4_1_SUPPORTED_ATTRS_WORD2 \ | 328 | #define NFSD4_1_SUPPORTED_ATTRS_WORD2 \ |
329 | (NFSD4_SUPPORTED_ATTRS_WORD2 | FATTR4_WORD2_SUPPATTR_EXCLCREAT) | 329 | (NFSD4_SUPPORTED_ATTRS_WORD2 | FATTR4_WORD2_SUPPATTR_EXCLCREAT) |
330 | 330 | ||
331 | #ifdef CONFIG_NFSD_V4_SECURITY_LABEL | ||
332 | #define NFSD4_2_SUPPORTED_ATTRS_WORD2 \ | ||
333 | (NFSD4_1_SUPPORTED_ATTRS_WORD2 | FATTR4_WORD2_SECURITY_LABEL) | ||
334 | #else | ||
335 | #define NFSD4_2_SUPPORTED_ATTRS_WORD2 0 | ||
336 | #endif | ||
337 | |||
331 | static inline u32 nfsd_suppattrs0(u32 minorversion) | 338 | static inline u32 nfsd_suppattrs0(u32 minorversion) |
332 | { | 339 | { |
333 | return minorversion ? NFSD4_1_SUPPORTED_ATTRS_WORD0 | 340 | return minorversion ? NFSD4_1_SUPPORTED_ATTRS_WORD0 |
@@ -342,8 +349,11 @@ static inline u32 nfsd_suppattrs1(u32 minorversion) | |||
342 | 349 | ||
343 | static inline u32 nfsd_suppattrs2(u32 minorversion) | 350 | static inline u32 nfsd_suppattrs2(u32 minorversion) |
344 | { | 351 | { |
345 | return minorversion ? NFSD4_1_SUPPORTED_ATTRS_WORD2 | 352 | switch (minorversion) { |
346 | : NFSD4_SUPPORTED_ATTRS_WORD2; | 353 | default: return NFSD4_2_SUPPORTED_ATTRS_WORD2; |
354 | case 1: return NFSD4_1_SUPPORTED_ATTRS_WORD2; | ||
355 | case 0: return NFSD4_SUPPORTED_ATTRS_WORD2; | ||
356 | } | ||
347 | } | 357 | } |
348 | 358 | ||
349 | /* These will return ERR_INVAL if specified in GETATTR or READDIR. */ | 359 | /* These will return ERR_INVAL if specified in GETATTR or READDIR. */ |
@@ -356,7 +366,11 @@ static inline u32 nfsd_suppattrs2(u32 minorversion) | |||
356 | #define NFSD_WRITEABLE_ATTRS_WORD1 \ | 366 | #define NFSD_WRITEABLE_ATTRS_WORD1 \ |
357 | (FATTR4_WORD1_MODE | FATTR4_WORD1_OWNER | FATTR4_WORD1_OWNER_GROUP \ | 367 | (FATTR4_WORD1_MODE | FATTR4_WORD1_OWNER | FATTR4_WORD1_OWNER_GROUP \ |
358 | | FATTR4_WORD1_TIME_ACCESS_SET | FATTR4_WORD1_TIME_MODIFY_SET) | 368 | | FATTR4_WORD1_TIME_ACCESS_SET | FATTR4_WORD1_TIME_MODIFY_SET) |
369 | #ifdef CONFIG_NFSD_V4_SECURITY_LABEL | ||
370 | #define NFSD_WRITEABLE_ATTRS_WORD2 FATTR4_WORD2_SECURITY_LABEL | ||
371 | #else | ||
359 | #define NFSD_WRITEABLE_ATTRS_WORD2 0 | 372 | #define NFSD_WRITEABLE_ATTRS_WORD2 0 |
373 | #endif | ||
360 | 374 | ||
361 | #define NFSD_SUPPATTR_EXCLCREAT_WORD0 \ | 375 | #define NFSD_SUPPATTR_EXCLCREAT_WORD0 \ |
362 | NFSD_WRITEABLE_ATTRS_WORD0 | 376 | NFSD_WRITEABLE_ATTRS_WORD0 |