Message ID | 1355120348-5117-1-git-send-email-tm@tao.ma |
---|---|
State | Superseded, archived |
Headers | show |
On Mon 10-12-12 14:19:08, Tao Ma wrote: > From: Tao Ma <boyu.mt@taobao.com> > > Ted has sent out a RFC about removing this feature. Eric and Jan > confirmed that both RedHat and SUSE enable this feature in all their > product. David also said that "As far as I know, it's enabled in > all Android kernels that use ext4." So it seems OK for us. > > And what's more, as inline data depends its implementation on xattr, > and to be frank, I don't run any test again inline data enabled while > xattr disabled. So I think we should add inline data and remove this > config option in the same release. > > Cc: David Brown <davidb@codeaurora.org> > Cc: Jan Kara <jack@suse.cz> > Cc: Eric Sandeen <sandeen@redhat.com> > Cc: "Theodore Ts'o" <tytso@mit.edu> > Signed-off-by: Tao Ma <boyu.mt@taobao.com> The patch looks good. You can add: Acked-by: Jan Kara <jack@suse.cz> Honza > --- > fs/ext4/Kconfig | 15 ---- > fs/ext4/Makefile | 4 +- > fs/ext4/ext4.h | 2 - > fs/ext4/file.c | 2 - > fs/ext4/namei.c | 4 - > fs/ext4/super.c | 7 -- > fs/ext4/symlink.c | 4 - > fs/ext4/xattr.h | 236 ----------------------------------------------------- > 8 files changed, 1 insertions(+), 273 deletions(-) > > diff --git a/fs/ext4/Kconfig b/fs/ext4/Kconfig > index c22f170..0a475c8 100644 > --- a/fs/ext4/Kconfig > +++ b/fs/ext4/Kconfig > @@ -39,22 +39,8 @@ config EXT4_USE_FOR_EXT23 > compiled kernel size by using one file system driver for > ext2, ext3, and ext4 file systems. > > -config EXT4_FS_XATTR > - bool "Ext4 extended attributes" > - depends on EXT4_FS > - default y > - help > - Extended attributes are name:value pairs associated with inodes by > - the kernel or by users (see the attr(5) manual page, or visit > - <http://acl.bestbits.at/> for details). > - > - If unsure, say N. > - > - You need this for POSIX ACL support on ext4. > - > config EXT4_FS_POSIX_ACL > bool "Ext4 POSIX Access Control Lists" > - depends on EXT4_FS_XATTR > select FS_POSIX_ACL > help > POSIX Access Control Lists (ACLs) support permissions for users and > @@ -67,7 +53,6 @@ config EXT4_FS_POSIX_ACL > > config EXT4_FS_SECURITY > bool "Ext4 Security Labels" > - depends on EXT4_FS_XATTR > help > Security labels support alternative access control models > implemented by security modules like SELinux. This option > diff --git a/fs/ext4/Makefile b/fs/ext4/Makefile > index e88b7a6..2eea427 100644 > --- a/fs/ext4/Makefile > +++ b/fs/ext4/Makefile > @@ -7,8 +7,6 @@ obj-$(CONFIG_EXT4_FS) += ext4.o > ext4-y := balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o page-io.o \ > ioctl.o namei.o super.o symlink.o hash.o resize.o extents.o \ > ext4_jbd2.o migrate.o mballoc.o block_validity.o move_extent.o \ > - mmp.o indirect.o > - > -ext4-$(CONFIG_EXT4_FS_XATTR) += xattr.o xattr_user.o xattr_trusted.o inline.o > + mmp.o indirect.o xattr.o xattr_user.o xattr_trusted.o inline.o > ext4-$(CONFIG_EXT4_FS_POSIX_ACL) += acl.o > ext4-$(CONFIG_EXT4_FS_SECURITY) += xattr_security.o > diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h > index 2dd5824..b380147 100644 > --- a/fs/ext4/ext4.h > +++ b/fs/ext4/ext4.h > @@ -835,7 +835,6 @@ struct ext4_inode_info { > #endif > unsigned long i_flags; > > -#ifdef CONFIG_EXT4_FS_XATTR > /* > * Extended attributes can be read independently of the main file > * data. Taking i_mutex even when reading would cause contention > @@ -844,7 +843,6 @@ struct ext4_inode_info { > * EAs. > */ > struct rw_semaphore xattr_sem; > -#endif > > struct list_head i_orphan; /* unlinked but open inodes */ > > diff --git a/fs/ext4/file.c b/fs/ext4/file.c > index bf3966b..dcda329 100644 > --- a/fs/ext4/file.c > +++ b/fs/ext4/file.c > @@ -326,12 +326,10 @@ const struct file_operations ext4_file_operations = { > const struct inode_operations ext4_file_inode_operations = { > .setattr = ext4_setattr, > .getattr = ext4_getattr, > -#ifdef CONFIG_EXT4_FS_XATTR > .setxattr = generic_setxattr, > .getxattr = generic_getxattr, > .listxattr = ext4_listxattr, > .removexattr = generic_removexattr, > -#endif > .get_acl = ext4_get_acl, > .fiemap = ext4_fiemap, > }; > diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c > index adf309b..b099b4c 100644 > --- a/fs/ext4/namei.c > +++ b/fs/ext4/namei.c > @@ -3209,23 +3209,19 @@ const struct inode_operations ext4_dir_inode_operations = { > .mknod = ext4_mknod, > .rename = ext4_rename, > .setattr = ext4_setattr, > -#ifdef CONFIG_EXT4_FS_XATTR > .setxattr = generic_setxattr, > .getxattr = generic_getxattr, > .listxattr = ext4_listxattr, > .removexattr = generic_removexattr, > -#endif > .get_acl = ext4_get_acl, > .fiemap = ext4_fiemap, > }; > > const struct inode_operations ext4_special_inode_operations = { > .setattr = ext4_setattr, > -#ifdef CONFIG_EXT4_FS_XATTR > .setxattr = generic_setxattr, > .getxattr = generic_getxattr, > .listxattr = ext4_listxattr, > .removexattr = generic_removexattr, > -#endif > .get_acl = ext4_get_acl, > }; > diff --git a/fs/ext4/super.c b/fs/ext4/super.c > index 80928f7..1de7ebc 100644 > --- a/fs/ext4/super.c > +++ b/fs/ext4/super.c > @@ -996,9 +996,7 @@ static void init_once(void *foo) > struct ext4_inode_info *ei = (struct ext4_inode_info *) foo; > > INIT_LIST_HEAD(&ei->i_orphan); > -#ifdef CONFIG_EXT4_FS_XATTR > init_rwsem(&ei->xattr_sem); > -#endif > init_rwsem(&ei->i_data_sem); > inode_init_once(&ei->vfs_inode); > } > @@ -1447,13 +1445,10 @@ static const struct mount_opts { > {Opt_data_journal, EXT4_MOUNT_JOURNAL_DATA, MOPT_DATAJ}, > {Opt_data_ordered, EXT4_MOUNT_ORDERED_DATA, MOPT_DATAJ}, > {Opt_data_writeback, EXT4_MOUNT_WRITEBACK_DATA, MOPT_DATAJ}, > -#ifdef CONFIG_EXT4_FS_XATTR > {Opt_user_xattr, EXT4_MOUNT_XATTR_USER, MOPT_SET}, > {Opt_nouser_xattr, EXT4_MOUNT_XATTR_USER, MOPT_CLEAR}, > -#else > {Opt_user_xattr, 0, MOPT_NOSUPPORT}, > {Opt_nouser_xattr, 0, MOPT_NOSUPPORT}, > -#endif > #ifdef CONFIG_EXT4_FS_POSIX_ACL > {Opt_acl, EXT4_MOUNT_POSIX_ACL, MOPT_SET}, > {Opt_noacl, EXT4_MOUNT_POSIX_ACL, MOPT_CLEAR}, > @@ -3369,9 +3364,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) > if (def_mount_opts & EXT4_DEFM_UID16) > set_opt(sb, NO_UID32); > /* xattr user namespace & acls are now defaulted on */ > -#ifdef CONFIG_EXT4_FS_XATTR > set_opt(sb, XATTR_USER); > -#endif > #ifdef CONFIG_EXT4_FS_POSIX_ACL > set_opt(sb, POSIX_ACL); > #endif > diff --git a/fs/ext4/symlink.c b/fs/ext4/symlink.c > index ed9354a..ff37119 100644 > --- a/fs/ext4/symlink.c > +++ b/fs/ext4/symlink.c > @@ -35,22 +35,18 @@ const struct inode_operations ext4_symlink_inode_operations = { > .follow_link = page_follow_link_light, > .put_link = page_put_link, > .setattr = ext4_setattr, > -#ifdef CONFIG_EXT4_FS_XATTR > .setxattr = generic_setxattr, > .getxattr = generic_getxattr, > .listxattr = ext4_listxattr, > .removexattr = generic_removexattr, > -#endif > }; > > const struct inode_operations ext4_fast_symlink_inode_operations = { > .readlink = generic_readlink, > .follow_link = ext4_follow_link, > .setattr = ext4_setattr, > -#ifdef CONFIG_EXT4_FS_XATTR > .setxattr = generic_setxattr, > .getxattr = generic_getxattr, > .listxattr = ext4_listxattr, > .removexattr = generic_removexattr, > -#endif > }; > diff --git a/fs/ext4/xattr.h b/fs/ext4/xattr.h > index f959e6c..c33fa41 100644 > --- a/fs/ext4/xattr.h > +++ b/fs/ext4/xattr.h > @@ -92,8 +92,6 @@ struct ext4_xattr_ibody_find { > struct ext4_iloc iloc; > }; > > -# ifdef CONFIG_EXT4_FS_XATTR > - > extern const struct xattr_handler ext4_xattr_user_handler; > extern const struct xattr_handler ext4_xattr_trusted_handler; > extern const struct xattr_handler ext4_xattr_acl_access_handler; > @@ -193,240 +191,6 @@ extern int ext4_try_to_evict_inline_data(handle_t *handle, > extern void ext4_inline_data_truncate(struct inode *inode, int *has_inline); > > extern int ext4_convert_inline_data(struct inode *inode); > -# else /* CONFIG_EXT4_FS_XATTR */ > - > -static inline int > -ext4_xattr_get(struct inode *inode, int name_index, const char *name, > - void *buffer, size_t size, int flags) > -{ > - return -EOPNOTSUPP; > -} > - > -static inline int > -ext4_xattr_set(struct inode *inode, int name_index, const char *name, > - const void *value, size_t size, int flags) > -{ > - return -EOPNOTSUPP; > -} > - > -static inline int > -ext4_xattr_set_handle(handle_t *handle, struct inode *inode, int name_index, > - const char *name, const void *value, size_t size, int flags) > -{ > - return -EOPNOTSUPP; > -} > - > -static inline void > -ext4_xattr_delete_inode(handle_t *handle, struct inode *inode) > -{ > -} > - > -static inline void > -ext4_xattr_put_super(struct super_block *sb) > -{ > -} > - > -static __init inline int > -ext4_init_xattr(void) > -{ > - return 0; > -} > - > -static inline void > -ext4_exit_xattr(void) > -{ > -} > - > -static inline int > -ext4_expand_extra_isize_ea(struct inode *inode, int new_extra_isize, > - struct ext4_inode *raw_inode, handle_t *handle) > -{ > - return -EOPNOTSUPP; > -} > - > -#define ext4_xattr_handlers NULL > - > -static inline int > -ext4_xattr_ibody_find(struct inode *inode, struct ext4_xattr_info *i, > - struct ext4_xattr_ibody_find *is) > -{ > - return -EOPNOTSUPP; > -} > - > -static inline int > -ext4_xattr_ibody_set(handle_t *handle, struct inode *inode, > - struct ext4_xattr_info *i, > - struct ext4_xattr_ibody_find *is) > -{ > - return -EOPNOTSUPP; > -} > - > -static inline int > -ext4_xattr_ibody_get(struct inode *inode, int name_index, > - const char *name, > - void *buffer, size_t buffer_size) > -{ > - return -EOPNOTSUPP; > -} > - > -static inline int ext4_find_inline_data(struct inode *inode) > -{ > - return 0; > -} > - > -static inline int ext4_has_inline_data(struct inode *inode) > -{ > - return 0; > -} > - > -static inline int ext4_get_inline_size(struct inode *inode) > -{ > - return 0; > -} > - > -static inline int ext4_get_max_inline_size(struct inode *inode) > -{ > - return 0; > -} > - > -static inline void ext4_write_inline_data(struct inode *inode, > - struct ext4_iloc *iloc, > - void *buffer, loff_t pos, > - unsigned int len) > -{ > - return; > -} > - > -static inline int ext4_init_inline_data(handle_t *handle, > - struct inode *inode, > - unsigned int len) > -{ > - return 0; > -} > - > -static inline int ext4_destroy_inline_data(handle_t *handle, > - struct inode *inode) > -{ > - return 0; > -} > - > -static inline int ext4_readpage_inline(struct inode *inode, struct page *page) > -{ > - return 0; > -} > - > -static inline int ext4_try_to_write_inline_data(struct address_space *mapping, > - struct inode *inode, > - loff_t pos, unsigned len, > - unsigned flags, > - struct page **pagep) > -{ > - return 0; > -} > - > -static inline int ext4_write_inline_data_end(struct inode *inode, > - loff_t pos, unsigned len, > - unsigned copied, > - struct page *page) > -{ > - return 0; > -} > - > -static inline struct buffer_head * > -ext4_journalled_write_inline_data(struct inode *inode, > - unsigned len, > - struct page *page) > -{ > - return NULL; > -} > - > -static inline int > -ext4_da_write_inline_data_begin(struct address_space *mapping, > - struct inode *inode, > - loff_t pos, unsigned len, > - unsigned flags, > - struct page **pagep, > - void **fsdata) > -{ > - return 0; > -} > - > -static inline int ext4_da_write_inline_data_end(struct inode *inode, loff_t pos, > - unsigned len, unsigned copied, > - struct page *page) > -{ > - return 0; > -} > - > -static inline int ext4_try_add_inline_entry(handle_t *handle, > - struct dentry *dentry, > - struct inode *inode) > -{ > - return 0; > -} > - > -static inline int ext4_try_create_inline_dir(handle_t *handle, > - struct inode *parent, > - struct inode *inode) > -{ > - return 0; > -} > -static inline int ext4_read_inline_dir(struct file *filp, > - void *dirent, filldir_t filldir, > - int *has_inline_data) > -{ > - return 0; > -} > - > -static inline struct buffer_head * > -ext4_find_inline_entry(struct inode *dir, > - const struct qstr *d_name, > - struct ext4_dir_entry_2 **res_dir, > - int *has_inline_data) > -{ > - return NULL; > -} > - > -static inline int ext4_delete_inline_entry(handle_t *handle, > - struct inode *dir, > - struct ext4_dir_entry_2 *de_del, > - struct buffer_head *bh, > - int *has_inline_data) > -{ > - return 0; > -} > - > -static inline int empty_inline_dir(struct inode *dir, int *has_inline_data) > -{ > - return 0; > -} > - > -static inline struct buffer_head * > -ext4_get_first_inline_block(struct inode *inode, > - struct ext4_dir_entry_2 **parent_de, > - int *retval) > -{ > - return NULL; > -} > - > -static inline int ext4_inline_data_fiemap(struct inode *inode, > - struct fiemap_extent_info *fieinfo, > - int *has_inline) > -{ > - return 0; > -} > - > -static inline void ext4_inline_data_truncate(struct inode *inode, > - int *has_inline) > -{ > - return; > -} > - > -static inline int ext4_convert_inline_data(struct inode *inode) > -{ > - return 0; > -} > -# endif /* CONFIG_EXT4_FS_XATTR */ > > #ifdef CONFIG_EXT4_FS_SECURITY > extern int ext4_init_security(handle_t *handle, struct inode *inode, > -- > 1.7.1 >
Applied, with some minor fixups so it works with the extents_status tree patches, and also to fix a buglet which in fs/ext4/super.c: > @@ -1447,13 +1445,10 @@ static const struct mount_opts { > {Opt_data_journal, EXT4_MOUNT_JOURNAL_DATA, MOPT_DATAJ}, > {Opt_data_ordered, EXT4_MOUNT_ORDERED_DATA, MOPT_DATAJ}, > {Opt_data_writeback, EXT4_MOUNT_WRITEBACK_DATA, MOPT_DATAJ}, > -#ifdef CONFIG_EXT4_FS_XATTR > {Opt_user_xattr, EXT4_MOUNT_XATTR_USER, MOPT_SET}, > {Opt_nouser_xattr, EXT4_MOUNT_XATTR_USER, MOPT_CLEAR}, > -#else > {Opt_user_xattr, 0, MOPT_NOSUPPORT}, > {Opt_nouser_xattr, 0, MOPT_NOSUPPORT}, > -#endif The table entries between the #else and #endif in the above patch chunlk needs to be removed as well. I've fixed this in my tree. Regards, - Ted -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/ext4/Kconfig b/fs/ext4/Kconfig index c22f170..0a475c8 100644 --- a/fs/ext4/Kconfig +++ b/fs/ext4/Kconfig @@ -39,22 +39,8 @@ config EXT4_USE_FOR_EXT23 compiled kernel size by using one file system driver for ext2, ext3, and ext4 file systems. -config EXT4_FS_XATTR - bool "Ext4 extended attributes" - depends on EXT4_FS - default y - help - Extended attributes are name:value pairs associated with inodes by - the kernel or by users (see the attr(5) manual page, or visit - <http://acl.bestbits.at/> for details). - - If unsure, say N. - - You need this for POSIX ACL support on ext4. - config EXT4_FS_POSIX_ACL bool "Ext4 POSIX Access Control Lists" - depends on EXT4_FS_XATTR select FS_POSIX_ACL help POSIX Access Control Lists (ACLs) support permissions for users and @@ -67,7 +53,6 @@ config EXT4_FS_POSIX_ACL config EXT4_FS_SECURITY bool "Ext4 Security Labels" - depends on EXT4_FS_XATTR help Security labels support alternative access control models implemented by security modules like SELinux. This option diff --git a/fs/ext4/Makefile b/fs/ext4/Makefile index e88b7a6..2eea427 100644 --- a/fs/ext4/Makefile +++ b/fs/ext4/Makefile @@ -7,8 +7,6 @@ obj-$(CONFIG_EXT4_FS) += ext4.o ext4-y := balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o page-io.o \ ioctl.o namei.o super.o symlink.o hash.o resize.o extents.o \ ext4_jbd2.o migrate.o mballoc.o block_validity.o move_extent.o \ - mmp.o indirect.o - -ext4-$(CONFIG_EXT4_FS_XATTR) += xattr.o xattr_user.o xattr_trusted.o inline.o + mmp.o indirect.o xattr.o xattr_user.o xattr_trusted.o inline.o ext4-$(CONFIG_EXT4_FS_POSIX_ACL) += acl.o ext4-$(CONFIG_EXT4_FS_SECURITY) += xattr_security.o diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index 2dd5824..b380147 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -835,7 +835,6 @@ struct ext4_inode_info { #endif unsigned long i_flags; -#ifdef CONFIG_EXT4_FS_XATTR /* * Extended attributes can be read independently of the main file * data. Taking i_mutex even when reading would cause contention @@ -844,7 +843,6 @@ struct ext4_inode_info { * EAs. */ struct rw_semaphore xattr_sem; -#endif struct list_head i_orphan; /* unlinked but open inodes */ diff --git a/fs/ext4/file.c b/fs/ext4/file.c index bf3966b..dcda329 100644 --- a/fs/ext4/file.c +++ b/fs/ext4/file.c @@ -326,12 +326,10 @@ const struct file_operations ext4_file_operations = { const struct inode_operations ext4_file_inode_operations = { .setattr = ext4_setattr, .getattr = ext4_getattr, -#ifdef CONFIG_EXT4_FS_XATTR .setxattr = generic_setxattr, .getxattr = generic_getxattr, .listxattr = ext4_listxattr, .removexattr = generic_removexattr, -#endif .get_acl = ext4_get_acl, .fiemap = ext4_fiemap, }; diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index adf309b..b099b4c 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -3209,23 +3209,19 @@ const struct inode_operations ext4_dir_inode_operations = { .mknod = ext4_mknod, .rename = ext4_rename, .setattr = ext4_setattr, -#ifdef CONFIG_EXT4_FS_XATTR .setxattr = generic_setxattr, .getxattr = generic_getxattr, .listxattr = ext4_listxattr, .removexattr = generic_removexattr, -#endif .get_acl = ext4_get_acl, .fiemap = ext4_fiemap, }; const struct inode_operations ext4_special_inode_operations = { .setattr = ext4_setattr, -#ifdef CONFIG_EXT4_FS_XATTR .setxattr = generic_setxattr, .getxattr = generic_getxattr, .listxattr = ext4_listxattr, .removexattr = generic_removexattr, -#endif .get_acl = ext4_get_acl, }; diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 80928f7..1de7ebc 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -996,9 +996,7 @@ static void init_once(void *foo) struct ext4_inode_info *ei = (struct ext4_inode_info *) foo; INIT_LIST_HEAD(&ei->i_orphan); -#ifdef CONFIG_EXT4_FS_XATTR init_rwsem(&ei->xattr_sem); -#endif init_rwsem(&ei->i_data_sem); inode_init_once(&ei->vfs_inode); } @@ -1447,13 +1445,10 @@ static const struct mount_opts { {Opt_data_journal, EXT4_MOUNT_JOURNAL_DATA, MOPT_DATAJ}, {Opt_data_ordered, EXT4_MOUNT_ORDERED_DATA, MOPT_DATAJ}, {Opt_data_writeback, EXT4_MOUNT_WRITEBACK_DATA, MOPT_DATAJ}, -#ifdef CONFIG_EXT4_FS_XATTR {Opt_user_xattr, EXT4_MOUNT_XATTR_USER, MOPT_SET}, {Opt_nouser_xattr, EXT4_MOUNT_XATTR_USER, MOPT_CLEAR}, -#else {Opt_user_xattr, 0, MOPT_NOSUPPORT}, {Opt_nouser_xattr, 0, MOPT_NOSUPPORT}, -#endif #ifdef CONFIG_EXT4_FS_POSIX_ACL {Opt_acl, EXT4_MOUNT_POSIX_ACL, MOPT_SET}, {Opt_noacl, EXT4_MOUNT_POSIX_ACL, MOPT_CLEAR}, @@ -3369,9 +3364,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) if (def_mount_opts & EXT4_DEFM_UID16) set_opt(sb, NO_UID32); /* xattr user namespace & acls are now defaulted on */ -#ifdef CONFIG_EXT4_FS_XATTR set_opt(sb, XATTR_USER); -#endif #ifdef CONFIG_EXT4_FS_POSIX_ACL set_opt(sb, POSIX_ACL); #endif diff --git a/fs/ext4/symlink.c b/fs/ext4/symlink.c index ed9354a..ff37119 100644 --- a/fs/ext4/symlink.c +++ b/fs/ext4/symlink.c @@ -35,22 +35,18 @@ const struct inode_operations ext4_symlink_inode_operations = { .follow_link = page_follow_link_light, .put_link = page_put_link, .setattr = ext4_setattr, -#ifdef CONFIG_EXT4_FS_XATTR .setxattr = generic_setxattr, .getxattr = generic_getxattr, .listxattr = ext4_listxattr, .removexattr = generic_removexattr, -#endif }; const struct inode_operations ext4_fast_symlink_inode_operations = { .readlink = generic_readlink, .follow_link = ext4_follow_link, .setattr = ext4_setattr, -#ifdef CONFIG_EXT4_FS_XATTR .setxattr = generic_setxattr, .getxattr = generic_getxattr, .listxattr = ext4_listxattr, .removexattr = generic_removexattr, -#endif }; diff --git a/fs/ext4/xattr.h b/fs/ext4/xattr.h index f959e6c..c33fa41 100644 --- a/fs/ext4/xattr.h +++ b/fs/ext4/xattr.h @@ -92,8 +92,6 @@ struct ext4_xattr_ibody_find { struct ext4_iloc iloc; }; -# ifdef CONFIG_EXT4_FS_XATTR - extern const struct xattr_handler ext4_xattr_user_handler; extern const struct xattr_handler ext4_xattr_trusted_handler; extern const struct xattr_handler ext4_xattr_acl_access_handler; @@ -193,240 +191,6 @@ extern int ext4_try_to_evict_inline_data(handle_t *handle, extern void ext4_inline_data_truncate(struct inode *inode, int *has_inline); extern int ext4_convert_inline_data(struct inode *inode); -# else /* CONFIG_EXT4_FS_XATTR */ - -static inline int -ext4_xattr_get(struct inode *inode, int name_index, const char *name, - void *buffer, size_t size, int flags) -{ - return -EOPNOTSUPP; -} - -static inline int -ext4_xattr_set(struct inode *inode, int name_index, const char *name, - const void *value, size_t size, int flags) -{ - return -EOPNOTSUPP; -} - -static inline int -ext4_xattr_set_handle(handle_t *handle, struct inode *inode, int name_index, - const char *name, const void *value, size_t size, int flags) -{ - return -EOPNOTSUPP; -} - -static inline void -ext4_xattr_delete_inode(handle_t *handle, struct inode *inode) -{ -} - -static inline void -ext4_xattr_put_super(struct super_block *sb) -{ -} - -static __init inline int -ext4_init_xattr(void) -{ - return 0; -} - -static inline void -ext4_exit_xattr(void) -{ -} - -static inline int -ext4_expand_extra_isize_ea(struct inode *inode, int new_extra_isize, - struct ext4_inode *raw_inode, handle_t *handle) -{ - return -EOPNOTSUPP; -} - -#define ext4_xattr_handlers NULL - -static inline int -ext4_xattr_ibody_find(struct inode *inode, struct ext4_xattr_info *i, - struct ext4_xattr_ibody_find *is) -{ - return -EOPNOTSUPP; -} - -static inline int -ext4_xattr_ibody_set(handle_t *handle, struct inode *inode, - struct ext4_xattr_info *i, - struct ext4_xattr_ibody_find *is) -{ - return -EOPNOTSUPP; -} - -static inline int -ext4_xattr_ibody_get(struct inode *inode, int name_index, - const char *name, - void *buffer, size_t buffer_size) -{ - return -EOPNOTSUPP; -} - -static inline int ext4_find_inline_data(struct inode *inode) -{ - return 0; -} - -static inline int ext4_has_inline_data(struct inode *inode) -{ - return 0; -} - -static inline int ext4_get_inline_size(struct inode *inode) -{ - return 0; -} - -static inline int ext4_get_max_inline_size(struct inode *inode) -{ - return 0; -} - -static inline void ext4_write_inline_data(struct inode *inode, - struct ext4_iloc *iloc, - void *buffer, loff_t pos, - unsigned int len) -{ - return; -} - -static inline int ext4_init_inline_data(handle_t *handle, - struct inode *inode, - unsigned int len) -{ - return 0; -} - -static inline int ext4_destroy_inline_data(handle_t *handle, - struct inode *inode) -{ - return 0; -} - -static inline int ext4_readpage_inline(struct inode *inode, struct page *page) -{ - return 0; -} - -static inline int ext4_try_to_write_inline_data(struct address_space *mapping, - struct inode *inode, - loff_t pos, unsigned len, - unsigned flags, - struct page **pagep) -{ - return 0; -} - -static inline int ext4_write_inline_data_end(struct inode *inode, - loff_t pos, unsigned len, - unsigned copied, - struct page *page) -{ - return 0; -} - -static inline struct buffer_head * -ext4_journalled_write_inline_data(struct inode *inode, - unsigned len, - struct page *page) -{ - return NULL; -} - -static inline int -ext4_da_write_inline_data_begin(struct address_space *mapping, - struct inode *inode, - loff_t pos, unsigned len, - unsigned flags, - struct page **pagep, - void **fsdata) -{ - return 0; -} - -static inline int ext4_da_write_inline_data_end(struct inode *inode, loff_t pos, - unsigned len, unsigned copied, - struct page *page) -{ - return 0; -} - -static inline int ext4_try_add_inline_entry(handle_t *handle, - struct dentry *dentry, - struct inode *inode) -{ - return 0; -} - -static inline int ext4_try_create_inline_dir(handle_t *handle, - struct inode *parent, - struct inode *inode) -{ - return 0; -} -static inline int ext4_read_inline_dir(struct file *filp, - void *dirent, filldir_t filldir, - int *has_inline_data) -{ - return 0; -} - -static inline struct buffer_head * -ext4_find_inline_entry(struct inode *dir, - const struct qstr *d_name, - struct ext4_dir_entry_2 **res_dir, - int *has_inline_data) -{ - return NULL; -} - -static inline int ext4_delete_inline_entry(handle_t *handle, - struct inode *dir, - struct ext4_dir_entry_2 *de_del, - struct buffer_head *bh, - int *has_inline_data) -{ - return 0; -} - -static inline int empty_inline_dir(struct inode *dir, int *has_inline_data) -{ - return 0; -} - -static inline struct buffer_head * -ext4_get_first_inline_block(struct inode *inode, - struct ext4_dir_entry_2 **parent_de, - int *retval) -{ - return NULL; -} - -static inline int ext4_inline_data_fiemap(struct inode *inode, - struct fiemap_extent_info *fieinfo, - int *has_inline) -{ - return 0; -} - -static inline void ext4_inline_data_truncate(struct inode *inode, - int *has_inline) -{ - return; -} - -static inline int ext4_convert_inline_data(struct inode *inode) -{ - return 0; -} -# endif /* CONFIG_EXT4_FS_XATTR */ #ifdef CONFIG_EXT4_FS_SECURITY extern int ext4_init_security(handle_t *handle, struct inode *inode,