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>
This commit is contained in:
@@ -6,6 +6,7 @@ config OCFS2_FS
|
|||||||
select CRC32
|
select CRC32
|
||||||
select QUOTA
|
select QUOTA
|
||||||
select QUOTA_TREE
|
select QUOTA_TREE
|
||||||
|
select FS_POSIX_ACL
|
||||||
help
|
help
|
||||||
OCFS2 is a general purpose extent based shared disk cluster file
|
OCFS2 is a general purpose extent based shared disk cluster file
|
||||||
system with many similarities to ext3. It supports 64 bit inode
|
system with many similarities to ext3. It supports 64 bit inode
|
||||||
@@ -74,12 +75,3 @@ config OCFS2_DEBUG_FS
|
|||||||
This option will enable expensive consistency checks. Enable
|
This option will enable expensive consistency checks. Enable
|
||||||
this option for debugging only as it is likely to decrease
|
this option for debugging only as it is likely to decrease
|
||||||
performance of the filesystem.
|
performance of the filesystem.
|
||||||
|
|
||||||
config OCFS2_FS_POSIX_ACL
|
|
||||||
bool "OCFS2 POSIX Access Control Lists"
|
|
||||||
depends on OCFS2_FS
|
|
||||||
select FS_POSIX_ACL
|
|
||||||
default n
|
|
||||||
help
|
|
||||||
Posix Access Control Lists (ACLs) support permissions for users and
|
|
||||||
groups beyond the owner/group/world scheme.
|
|
||||||
|
@@ -39,11 +39,8 @@ ocfs2-objs := \
|
|||||||
ver.o \
|
ver.o \
|
||||||
quota_local.o \
|
quota_local.o \
|
||||||
quota_global.o \
|
quota_global.o \
|
||||||
xattr.o
|
xattr.o \
|
||||||
|
acl.o
|
||||||
ifeq ($(CONFIG_OCFS2_FS_POSIX_ACL),y)
|
|
||||||
ocfs2-objs += acl.o
|
|
||||||
endif
|
|
||||||
|
|
||||||
ocfs2_stackglue-objs := stackglue.o
|
ocfs2_stackglue-objs := stackglue.o
|
||||||
ocfs2_stack_o2cb-objs := stack_o2cb.o
|
ocfs2_stack_o2cb-objs := stack_o2cb.o
|
||||||
|
@@ -26,8 +26,6 @@ struct ocfs2_acl_entry {
|
|||||||
__le32 e_id;
|
__le32 e_id;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_OCFS2_FS_POSIX_ACL
|
|
||||||
|
|
||||||
extern int ocfs2_check_acl(struct inode *, int);
|
extern int ocfs2_check_acl(struct inode *, int);
|
||||||
extern int ocfs2_acl_chmod(struct inode *);
|
extern int ocfs2_acl_chmod(struct inode *);
|
||||||
extern int ocfs2_init_acl(handle_t *, struct inode *, struct inode *,
|
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 *,
|
|||||||
struct ocfs2_alloc_context *,
|
struct ocfs2_alloc_context *,
|
||||||
struct ocfs2_alloc_context *);
|
struct ocfs2_alloc_context *);
|
||||||
|
|
||||||
#else /* CONFIG_OCFS2_FS_POSIX_ACL*/
|
|
||||||
|
|
||||||
#define ocfs2_check_acl NULL
|
|
||||||
static inline int ocfs2_acl_chmod(struct inode *inode)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
static inline int ocfs2_init_acl(handle_t *handle,
|
|
||||||
struct inode *inode,
|
|
||||||
struct inode *dir,
|
|
||||||
struct buffer_head *di_bh,
|
|
||||||
struct buffer_head *dir_bh,
|
|
||||||
struct ocfs2_alloc_context *meta_ac,
|
|
||||||
struct ocfs2_alloc_context *data_ac)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* CONFIG_OCFS2_FS_POSIX_ACL*/
|
|
||||||
|
|
||||||
#endif /* OCFS2_ACL_H */
|
#endif /* OCFS2_ACL_H */
|
||||||
|
@@ -1413,19 +1413,12 @@ static int ocfs2_parse_options(struct super_block *sb,
|
|||||||
}
|
}
|
||||||
mopt->mount_opt |= OCFS2_MOUNT_GRPQUOTA;
|
mopt->mount_opt |= OCFS2_MOUNT_GRPQUOTA;
|
||||||
break;
|
break;
|
||||||
#ifdef CONFIG_OCFS2_FS_POSIX_ACL
|
|
||||||
case Opt_acl:
|
case Opt_acl:
|
||||||
mopt->mount_opt |= OCFS2_MOUNT_POSIX_ACL;
|
mopt->mount_opt |= OCFS2_MOUNT_POSIX_ACL;
|
||||||
break;
|
break;
|
||||||
case Opt_noacl:
|
case Opt_noacl:
|
||||||
mopt->mount_opt &= ~OCFS2_MOUNT_POSIX_ACL;
|
mopt->mount_opt &= ~OCFS2_MOUNT_POSIX_ACL;
|
||||||
break;
|
break;
|
||||||
#else
|
|
||||||
case Opt_acl:
|
|
||||||
case Opt_noacl:
|
|
||||||
printk(KERN_INFO "ocfs2 (no)acl options not supported\n");
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
default:
|
default:
|
||||||
mlog(ML_ERROR,
|
mlog(ML_ERROR,
|
||||||
"Unrecognized mount option \"%s\" "
|
"Unrecognized mount option \"%s\" "
|
||||||
@@ -1502,12 +1495,10 @@ static int ocfs2_show_options(struct seq_file *s, struct vfsmount *mnt)
|
|||||||
if (opts & OCFS2_MOUNT_INODE64)
|
if (opts & OCFS2_MOUNT_INODE64)
|
||||||
seq_printf(s, ",inode64");
|
seq_printf(s, ",inode64");
|
||||||
|
|
||||||
#ifdef CONFIG_OCFS2_FS_POSIX_ACL
|
|
||||||
if (opts & OCFS2_MOUNT_POSIX_ACL)
|
if (opts & OCFS2_MOUNT_POSIX_ACL)
|
||||||
seq_printf(s, ",acl");
|
seq_printf(s, ",acl");
|
||||||
else
|
else
|
||||||
seq_printf(s, ",noacl");
|
seq_printf(s, ",noacl");
|
||||||
#endif
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -98,10 +98,8 @@ static struct ocfs2_xattr_def_value_root def_xv = {
|
|||||||
|
|
||||||
struct xattr_handler *ocfs2_xattr_handlers[] = {
|
struct xattr_handler *ocfs2_xattr_handlers[] = {
|
||||||
&ocfs2_xattr_user_handler,
|
&ocfs2_xattr_user_handler,
|
||||||
#ifdef CONFIG_OCFS2_FS_POSIX_ACL
|
|
||||||
&ocfs2_xattr_acl_access_handler,
|
&ocfs2_xattr_acl_access_handler,
|
||||||
&ocfs2_xattr_acl_default_handler,
|
&ocfs2_xattr_acl_default_handler,
|
||||||
#endif
|
|
||||||
&ocfs2_xattr_trusted_handler,
|
&ocfs2_xattr_trusted_handler,
|
||||||
&ocfs2_xattr_security_handler,
|
&ocfs2_xattr_security_handler,
|
||||||
NULL
|
NULL
|
||||||
@@ -109,12 +107,10 @@ struct xattr_handler *ocfs2_xattr_handlers[] = {
|
|||||||
|
|
||||||
static struct xattr_handler *ocfs2_xattr_handler_map[OCFS2_XATTR_MAX] = {
|
static struct xattr_handler *ocfs2_xattr_handler_map[OCFS2_XATTR_MAX] = {
|
||||||
[OCFS2_XATTR_INDEX_USER] = &ocfs2_xattr_user_handler,
|
[OCFS2_XATTR_INDEX_USER] = &ocfs2_xattr_user_handler,
|
||||||
#ifdef CONFIG_OCFS2_FS_POSIX_ACL
|
|
||||||
[OCFS2_XATTR_INDEX_POSIX_ACL_ACCESS]
|
[OCFS2_XATTR_INDEX_POSIX_ACL_ACCESS]
|
||||||
= &ocfs2_xattr_acl_access_handler,
|
= &ocfs2_xattr_acl_access_handler,
|
||||||
[OCFS2_XATTR_INDEX_POSIX_ACL_DEFAULT]
|
[OCFS2_XATTR_INDEX_POSIX_ACL_DEFAULT]
|
||||||
= &ocfs2_xattr_acl_default_handler,
|
= &ocfs2_xattr_acl_default_handler,
|
||||||
#endif
|
|
||||||
[OCFS2_XATTR_INDEX_TRUSTED] = &ocfs2_xattr_trusted_handler,
|
[OCFS2_XATTR_INDEX_TRUSTED] = &ocfs2_xattr_trusted_handler,
|
||||||
[OCFS2_XATTR_INDEX_SECURITY] = &ocfs2_xattr_security_handler,
|
[OCFS2_XATTR_INDEX_SECURITY] = &ocfs2_xattr_security_handler,
|
||||||
};
|
};
|
||||||
|
@@ -40,10 +40,8 @@ struct ocfs2_security_xattr_info {
|
|||||||
extern struct xattr_handler ocfs2_xattr_user_handler;
|
extern struct xattr_handler ocfs2_xattr_user_handler;
|
||||||
extern struct xattr_handler ocfs2_xattr_trusted_handler;
|
extern struct xattr_handler ocfs2_xattr_trusted_handler;
|
||||||
extern struct xattr_handler ocfs2_xattr_security_handler;
|
extern struct xattr_handler ocfs2_xattr_security_handler;
|
||||||
#ifdef CONFIG_OCFS2_FS_POSIX_ACL
|
|
||||||
extern struct xattr_handler ocfs2_xattr_acl_access_handler;
|
extern struct xattr_handler ocfs2_xattr_acl_access_handler;
|
||||||
extern struct xattr_handler ocfs2_xattr_acl_default_handler;
|
extern struct xattr_handler ocfs2_xattr_acl_default_handler;
|
||||||
#endif
|
|
||||||
extern struct xattr_handler *ocfs2_xattr_handlers[];
|
extern struct xattr_handler *ocfs2_xattr_handlers[];
|
||||||
|
|
||||||
ssize_t ocfs2_listxattr(struct dentry *, char *, size_t);
|
ssize_t ocfs2_listxattr(struct dentry *, char *, size_t);
|
||||||
|
Reference in New Issue
Block a user