mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 01:04:19 +08:00
939da10844
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>
53 lines
1.3 KiB
C
53 lines
1.3 KiB
C
/*
|
|
* linux/fs/ext4/symlink.c
|
|
*
|
|
* Only fast symlinks left here - the rest is done by generic code. AV, 1999
|
|
*
|
|
* Copyright (C) 1992, 1993, 1994, 1995
|
|
* Remy Card (card@masi.ibp.fr)
|
|
* Laboratoire MASI - Institut Blaise Pascal
|
|
* Universite Pierre et Marie Curie (Paris VI)
|
|
*
|
|
* from
|
|
*
|
|
* linux/fs/minix/symlink.c
|
|
*
|
|
* Copyright (C) 1991, 1992 Linus Torvalds
|
|
*
|
|
* ext4 symlink handling code
|
|
*/
|
|
|
|
#include <linux/fs.h>
|
|
#include <linux/jbd2.h>
|
|
#include <linux/namei.h>
|
|
#include "ext4.h"
|
|
#include "xattr.h"
|
|
|
|
static void *ext4_follow_link(struct dentry *dentry, struct nameidata *nd)
|
|
{
|
|
struct ext4_inode_info *ei = EXT4_I(dentry->d_inode);
|
|
nd_set_link(nd, (char *) ei->i_data);
|
|
return NULL;
|
|
}
|
|
|
|
const struct inode_operations ext4_symlink_inode_operations = {
|
|
.readlink = generic_readlink,
|
|
.follow_link = page_follow_link_light,
|
|
.put_link = page_put_link,
|
|
.setattr = ext4_setattr,
|
|
.setxattr = generic_setxattr,
|
|
.getxattr = generic_getxattr,
|
|
.listxattr = ext4_listxattr,
|
|
.removexattr = generic_removexattr,
|
|
};
|
|
|
|
const struct inode_operations ext4_fast_symlink_inode_operations = {
|
|
.readlink = generic_readlink,
|
|
.follow_link = ext4_follow_link,
|
|
.setattr = ext4_setattr,
|
|
.setxattr = generic_setxattr,
|
|
.getxattr = generic_getxattr,
|
|
.listxattr = ext4_listxattr,
|
|
.removexattr = generic_removexattr,
|
|
};
|