ext4: Remove CONFIG_EXT4_FS_XATTR

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.

[ The savings if you disable CONFIG_EXT4_FS_XATTR is only 27k, which
  isn't much in the grand scheme of things.  Since no one seems to be
  testing this configuration except for some automated compile farms, on
  balance we are better removing this config option, and so that it is
  effectively always enabled. -- tytso ]

Cc: David Brown <davidb@codeaurora.org>
Cc: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Tao Ma <boyu.mt@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
Tao Ma
2012-12-10 16:30:43 -05:00
committed by Theodore Ts'o
parent 187fd030d8
commit 939da10844
10 changed files with 7 additions and 281 deletions

View File

@@ -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,239 +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_nolock(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,