diff options
| author | Jan Kara <jack@suse.cz> | 2009-10-15 08:54:03 -0400 |
|---|---|---|
| committer | Joel Becker <joel.becker@oracle.com> | 2009-10-29 02:05:57 -0400 |
| commit | e6aabe0cac14a495d42f629a803c5e221089bae8 (patch) | |
| tree | 39972946024d893ecbdcdbb30447bdb5b9fc5201 | |
| parent | 2f48d593b6ceb7bb63d34124ceba77d33be298cf (diff) | |
ocfs2: Always include ACL support
To become consistent with filesystems such as XFS or BTRFS, make posix
ACLs always available. This also reduces possibility of
misconfiguration on admin's side.
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
| -rw-r--r-- | fs/ocfs2/Kconfig | 10 | ||||
| -rw-r--r-- | fs/ocfs2/Makefile | 7 | ||||
| -rw-r--r-- | fs/ocfs2/acl.h | 22 | ||||
| -rw-r--r-- | fs/ocfs2/super.c | 9 | ||||
| -rw-r--r-- | fs/ocfs2/xattr.c | 4 | ||||
| -rw-r--r-- | fs/ocfs2/xattr.h | 2 |
6 files changed, 3 insertions, 51 deletions
diff --git a/fs/ocfs2/Kconfig b/fs/ocfs2/Kconfig index 701b7a3a872e..0d840669698e 100644 --- a/fs/ocfs2/Kconfig +++ b/fs/ocfs2/Kconfig | |||
| @@ -6,6 +6,7 @@ config OCFS2_FS | |||
| 6 | select CRC32 | 6 | select CRC32 |
| 7 | select QUOTA | 7 | select QUOTA |
| 8 | select QUOTA_TREE | 8 | select QUOTA_TREE |
| 9 | select FS_POSIX_ACL | ||
| 9 | help | 10 | help |
| 10 | OCFS2 is a general purpose extent based shared disk cluster file | 11 | OCFS2 is a general purpose extent based shared disk cluster file |
| 11 | system with many similarities to ext3. It supports 64 bit inode | 12 | system with many similarities to ext3. It supports 64 bit inode |
| @@ -74,12 +75,3 @@ config OCFS2_DEBUG_FS | |||
| 74 | This option will enable expensive consistency checks. Enable | 75 | This option will enable expensive consistency checks. Enable |
| 75 | this option for debugging only as it is likely to decrease | 76 | this option for debugging only as it is likely to decrease |
| 76 | performance of the filesystem. | 77 | performance of the filesystem. |
| 77 | |||
| 78 | config OCFS2_FS_POSIX_ACL | ||
| 79 | bool "OCFS2 POSIX Access Control Lists" | ||
| 80 | depends on OCFS2_FS | ||
| 81 | select FS_POSIX_ACL | ||
| 82 | default n | ||
| 83 | help | ||
| 84 | Posix Access Control Lists (ACLs) support permissions for users and | ||
| 85 | groups beyond the owner/group/world scheme. | ||
diff --git a/fs/ocfs2/Makefile b/fs/ocfs2/Makefile index 31f25ce32c97..600d2d2ade11 100644 --- a/fs/ocfs2/Makefile +++ b/fs/ocfs2/Makefile | |||
| @@ -39,11 +39,8 @@ ocfs2-objs := \ | |||
| 39 | ver.o \ | 39 | ver.o \ |
| 40 | quota_local.o \ | 40 | quota_local.o \ |
| 41 | quota_global.o \ | 41 | quota_global.o \ |
| 42 | xattr.o | 42 | xattr.o \ |
| 43 | 43 | acl.o | |
| 44 | ifeq ($(CONFIG_OCFS2_FS_POSIX_ACL),y) | ||
| 45 | ocfs2-objs += acl.o | ||
| 46 | endif | ||
| 47 | 44 | ||
| 48 | ocfs2_stackglue-objs := stackglue.o | 45 | ocfs2_stackglue-objs := stackglue.o |
| 49 | ocfs2_stack_o2cb-objs := stack_o2cb.o | 46 | ocfs2_stack_o2cb-objs := stack_o2cb.o |
diff --git a/fs/ocfs2/acl.h b/fs/ocfs2/acl.h index 8f6389ed4da5..5c5d31f05853 100644 --- a/fs/ocfs2/acl.h +++ b/fs/ocfs2/acl.h | |||
| @@ -26,8 +26,6 @@ struct ocfs2_acl_entry { | |||
| 26 | __le32 e_id; | 26 | __le32 e_id; |
| 27 | }; | 27 | }; |
| 28 | 28 | ||
| 29 | #ifdef CONFIG_OCFS2_FS_POSIX_ACL | ||
| 30 | |||
| 31 | extern int ocfs2_check_acl(struct inode *, int); | 29 | extern int ocfs2_check_acl(struct inode *, int); |
| 32 | extern int ocfs2_acl_chmod(struct inode *); | 30 | extern int ocfs2_acl_chmod(struct inode *); |
| 33 | extern int ocfs2_init_acl(handle_t *, struct inode *, struct inode *, | 31 | extern int ocfs2_init_acl(handle_t *, struct inode *, struct inode *, |
| @@ -35,24 +33,4 @@ extern int ocfs2_init_acl(handle_t *, struct inode *, struct inode *, | |||
| 35 | struct ocfs2_alloc_context *, | 33 | struct ocfs2_alloc_context *, |
| 36 | struct ocfs2_alloc_context *); | 34 | struct ocfs2_alloc_context *); |
| 37 | 35 | ||
| 38 | #else /* CONFIG_OCFS2_FS_POSIX_ACL*/ | ||
| 39 | |||
| 40 | #define ocfs2_check_acl NULL | ||
| 41 | static inline int ocfs2_acl_chmod(struct inode *inode) | ||
| 42 | { | ||
| 43 | return 0; | ||
| 44 | } | ||
| 45 | static inline int ocfs2_init_acl(handle_t *handle, | ||
| 46 | struct inode *inode, | ||
| 47 | struct inode *dir, | ||
| 48 | struct buffer_head *di_bh, | ||
| 49 | struct buffer_head *dir_bh, | ||
| 50 | struct ocfs2_alloc_context *meta_ac, | ||
| 51 | struct ocfs2_alloc_context *data_ac) | ||
| 52 | { | ||
| 53 | return 0; | ||
| 54 | } | ||
| 55 | |||
| 56 | #endif /* CONFIG_OCFS2_FS_POSIX_ACL*/ | ||
| 57 | |||
| 58 | #endif /* OCFS2_ACL_H */ | 36 | #endif /* OCFS2_ACL_H */ |
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 960673004df1..da7d33a57cf6 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c | |||
| @@ -1413,19 +1413,12 @@ static int ocfs2_parse_options(struct super_block *sb, | |||
| 1413 | } | 1413 | } |
| 1414 | mopt->mount_opt |= OCFS2_MOUNT_GRPQUOTA; | 1414 | mopt->mount_opt |= OCFS2_MOUNT_GRPQUOTA; |
| 1415 | break; | 1415 | break; |
| 1416 | #ifdef CONFIG_OCFS2_FS_POSIX_ACL | ||
| 1417 | case Opt_acl: | 1416 | case Opt_acl: |
| 1418 | mopt->mount_opt |= OCFS2_MOUNT_POSIX_ACL; | 1417 | mopt->mount_opt |= OCFS2_MOUNT_POSIX_ACL; |
| 1419 | break; | 1418 | break; |
| 1420 | case Opt_noacl: | 1419 | case Opt_noacl: |
| 1421 | mopt->mount_opt &= ~OCFS2_MOUNT_POSIX_ACL; | 1420 | mopt->mount_opt &= ~OCFS2_MOUNT_POSIX_ACL; |
| 1422 | break; | 1421 | break; |
| 1423 | #else | ||
| 1424 | case Opt_acl: | ||
| 1425 | case Opt_noacl: | ||
| 1426 | printk(KERN_INFO "ocfs2 (no)acl options not supported\n"); | ||
| 1427 | break; | ||
| 1428 | #endif | ||
| 1429 | default: | 1422 | default: |
| 1430 | mlog(ML_ERROR, | 1423 | mlog(ML_ERROR, |
| 1431 | "Unrecognized mount option \"%s\" " | 1424 | "Unrecognized mount option \"%s\" " |
| @@ -1502,12 +1495,10 @@ static int ocfs2_show_options(struct seq_file *s, struct vfsmount *mnt) | |||
| 1502 | if (opts & OCFS2_MOUNT_INODE64) | 1495 | if (opts & OCFS2_MOUNT_INODE64) |
| 1503 | seq_printf(s, ",inode64"); | 1496 | seq_printf(s, ",inode64"); |
| 1504 | 1497 | ||
| 1505 | #ifdef CONFIG_OCFS2_FS_POSIX_ACL | ||
| 1506 | if (opts & OCFS2_MOUNT_POSIX_ACL) | 1498 | if (opts & OCFS2_MOUNT_POSIX_ACL) |
| 1507 | seq_printf(s, ",acl"); | 1499 | seq_printf(s, ",acl"); |
| 1508 | else | 1500 | else |
| 1509 | seq_printf(s, ",noacl"); | 1501 | seq_printf(s, ",noacl"); |
| 1510 | #endif | ||
| 1511 | 1502 | ||
| 1512 | return 0; | 1503 | return 0; |
| 1513 | } | 1504 | } |
diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c index fe3419068df2..923e950e5445 100644 --- a/fs/ocfs2/xattr.c +++ b/fs/ocfs2/xattr.c | |||
| @@ -98,10 +98,8 @@ static struct ocfs2_xattr_def_value_root def_xv = { | |||
| 98 | 98 | ||
| 99 | struct xattr_handler *ocfs2_xattr_handlers[] = { | 99 | struct xattr_handler *ocfs2_xattr_handlers[] = { |
| 100 | &ocfs2_xattr_user_handler, | 100 | &ocfs2_xattr_user_handler, |
| 101 | #ifdef CONFIG_OCFS2_FS_POSIX_ACL | ||
| 102 | &ocfs2_xattr_acl_access_handler, | 101 | &ocfs2_xattr_acl_access_handler, |
| 103 | &ocfs2_xattr_acl_default_handler, | 102 | &ocfs2_xattr_acl_default_handler, |
| 104 | #endif | ||
| 105 | &ocfs2_xattr_trusted_handler, | 103 | &ocfs2_xattr_trusted_handler, |
| 106 | &ocfs2_xattr_security_handler, | 104 | &ocfs2_xattr_security_handler, |
| 107 | NULL | 105 | NULL |
| @@ -109,12 +107,10 @@ struct xattr_handler *ocfs2_xattr_handlers[] = { | |||
| 109 | 107 | ||
| 110 | static struct xattr_handler *ocfs2_xattr_handler_map[OCFS2_XATTR_MAX] = { | 108 | static struct xattr_handler *ocfs2_xattr_handler_map[OCFS2_XATTR_MAX] = { |
| 111 | [OCFS2_XATTR_INDEX_USER] = &ocfs2_xattr_user_handler, | 109 | [OCFS2_XATTR_INDEX_USER] = &ocfs2_xattr_user_handler, |
| 112 | #ifdef CONFIG_OCFS2_FS_POSIX_ACL | ||
| 113 | [OCFS2_XATTR_INDEX_POSIX_ACL_ACCESS] | 110 | [OCFS2_XATTR_INDEX_POSIX_ACL_ACCESS] |
| 114 | = &ocfs2_xattr_acl_access_handler, | 111 | = &ocfs2_xattr_acl_access_handler, |
| 115 | [OCFS2_XATTR_INDEX_POSIX_ACL_DEFAULT] | 112 | [OCFS2_XATTR_INDEX_POSIX_ACL_DEFAULT] |
| 116 | = &ocfs2_xattr_acl_default_handler, | 113 | = &ocfs2_xattr_acl_default_handler, |
| 117 | #endif | ||
| 118 | [OCFS2_XATTR_INDEX_TRUSTED] = &ocfs2_xattr_trusted_handler, | 114 | [OCFS2_XATTR_INDEX_TRUSTED] = &ocfs2_xattr_trusted_handler, |
| 119 | [OCFS2_XATTR_INDEX_SECURITY] = &ocfs2_xattr_security_handler, | 115 | [OCFS2_XATTR_INDEX_SECURITY] = &ocfs2_xattr_security_handler, |
| 120 | }; | 116 | }; |
diff --git a/fs/ocfs2/xattr.h b/fs/ocfs2/xattr.h index 08e36389f56d..abd72a47f520 100644 --- a/fs/ocfs2/xattr.h +++ b/fs/ocfs2/xattr.h | |||
| @@ -40,10 +40,8 @@ struct ocfs2_security_xattr_info { | |||
| 40 | extern struct xattr_handler ocfs2_xattr_user_handler; | 40 | extern struct xattr_handler ocfs2_xattr_user_handler; |
| 41 | extern struct xattr_handler ocfs2_xattr_trusted_handler; | 41 | extern struct xattr_handler ocfs2_xattr_trusted_handler; |
| 42 | extern struct xattr_handler ocfs2_xattr_security_handler; | 42 | extern struct xattr_handler ocfs2_xattr_security_handler; |
| 43 | #ifdef CONFIG_OCFS2_FS_POSIX_ACL | ||
| 44 | extern struct xattr_handler ocfs2_xattr_acl_access_handler; | 43 | extern struct xattr_handler ocfs2_xattr_acl_access_handler; |
| 45 | extern struct xattr_handler ocfs2_xattr_acl_default_handler; | 44 | extern struct xattr_handler ocfs2_xattr_acl_default_handler; |
| 46 | #endif | ||
| 47 | extern struct xattr_handler *ocfs2_xattr_handlers[]; | 45 | extern struct xattr_handler *ocfs2_xattr_handlers[]; |
| 48 | 46 | ||
| 49 | ssize_t ocfs2_listxattr(struct dentry *, char *, size_t); | 47 | ssize_t ocfs2_listxattr(struct dentry *, char *, size_t); |
