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); |