vfs: Remove {get,set,remove}xattr inode operations

These inode operations are no longer used; remove them.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Andreas Gruenbacher 2016-09-29 17:48:45 +02:00 committed by Al Viro
parent 41fefa36be
commit fd50ecaddf
55 changed files with 0 additions and 319 deletions

View File

@ -3213,10 +3213,7 @@ const struct inode_operations ll_file_inode_operations = {
.setattr = ll_setattr, .setattr = ll_setattr,
.getattr = ll_getattr, .getattr = ll_getattr,
.permission = ll_inode_permission, .permission = ll_inode_permission,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ll_listxattr, .listxattr = ll_listxattr,
.removexattr = generic_removexattr,
.fiemap = ll_fiemap, .fiemap = ll_fiemap,
.get_acl = ll_get_acl, .get_acl = ll_get_acl,
}; };

View File

@ -1106,10 +1106,7 @@ const struct inode_operations ll_dir_inode_operations = {
.setattr = ll_setattr, .setattr = ll_setattr,
.getattr = ll_getattr, .getattr = ll_getattr,
.permission = ll_inode_permission, .permission = ll_inode_permission,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ll_listxattr, .listxattr = ll_listxattr,
.removexattr = generic_removexattr,
.get_acl = ll_get_acl, .get_acl = ll_get_acl,
}; };
@ -1117,9 +1114,6 @@ const struct inode_operations ll_special_inode_operations = {
.setattr = ll_setattr, .setattr = ll_setattr,
.getattr = ll_getattr, .getattr = ll_getattr,
.permission = ll_inode_permission, .permission = ll_inode_permission,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ll_listxattr, .listxattr = ll_listxattr,
.removexattr = generic_removexattr,
.get_acl = ll_get_acl, .get_acl = ll_get_acl,
}; };

View File

@ -155,8 +155,5 @@ const struct inode_operations ll_fast_symlink_inode_operations = {
.get_link = ll_get_link, .get_link = ll_get_link,
.getattr = ll_getattr, .getattr = ll_getattr,
.permission = ll_inode_permission, .permission = ll_inode_permission,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ll_listxattr, .listxattr = ll_listxattr,
.removexattr = generic_removexattr,
}; };

View File

@ -967,9 +967,6 @@ const struct inode_operations v9fs_dir_inode_operations_dotl = {
.rename = v9fs_vfs_rename, .rename = v9fs_vfs_rename,
.getattr = v9fs_vfs_getattr_dotl, .getattr = v9fs_vfs_getattr_dotl,
.setattr = v9fs_vfs_setattr_dotl, .setattr = v9fs_vfs_setattr_dotl,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.removexattr = generic_removexattr,
.listxattr = v9fs_listxattr, .listxattr = v9fs_listxattr,
.get_acl = v9fs_iop_get_acl, .get_acl = v9fs_iop_get_acl,
}; };
@ -977,9 +974,6 @@ const struct inode_operations v9fs_dir_inode_operations_dotl = {
const struct inode_operations v9fs_file_inode_operations_dotl = { const struct inode_operations v9fs_file_inode_operations_dotl = {
.getattr = v9fs_vfs_getattr_dotl, .getattr = v9fs_vfs_getattr_dotl,
.setattr = v9fs_vfs_setattr_dotl, .setattr = v9fs_vfs_setattr_dotl,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.removexattr = generic_removexattr,
.listxattr = v9fs_listxattr, .listxattr = v9fs_listxattr,
.get_acl = v9fs_iop_get_acl, .get_acl = v9fs_iop_get_acl,
}; };
@ -989,8 +983,5 @@ const struct inode_operations v9fs_symlink_inode_operations_dotl = {
.get_link = v9fs_vfs_get_link_dotl, .get_link = v9fs_vfs_get_link_dotl,
.getattr = v9fs_vfs_getattr_dotl, .getattr = v9fs_vfs_getattr_dotl,
.setattr = v9fs_vfs_setattr_dotl, .setattr = v9fs_vfs_setattr_dotl,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.removexattr = generic_removexattr,
.listxattr = v9fs_listxattr, .listxattr = v9fs_listxattr,
}; };

View File

@ -10570,10 +10570,7 @@ static const struct inode_operations btrfs_dir_inode_operations = {
.symlink = btrfs_symlink, .symlink = btrfs_symlink,
.setattr = btrfs_setattr, .setattr = btrfs_setattr,
.mknod = btrfs_mknod, .mknod = btrfs_mknod,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = btrfs_listxattr, .listxattr = btrfs_listxattr,
.removexattr = generic_removexattr,
.permission = btrfs_permission, .permission = btrfs_permission,
.get_acl = btrfs_get_acl, .get_acl = btrfs_get_acl,
.set_acl = btrfs_set_acl, .set_acl = btrfs_set_acl,
@ -10647,10 +10644,7 @@ static const struct address_space_operations btrfs_symlink_aops = {
static const struct inode_operations btrfs_file_inode_operations = { static const struct inode_operations btrfs_file_inode_operations = {
.getattr = btrfs_getattr, .getattr = btrfs_getattr,
.setattr = btrfs_setattr, .setattr = btrfs_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = btrfs_listxattr, .listxattr = btrfs_listxattr,
.removexattr = generic_removexattr,
.permission = btrfs_permission, .permission = btrfs_permission,
.fiemap = btrfs_fiemap, .fiemap = btrfs_fiemap,
.get_acl = btrfs_get_acl, .get_acl = btrfs_get_acl,
@ -10661,10 +10655,7 @@ static const struct inode_operations btrfs_special_inode_operations = {
.getattr = btrfs_getattr, .getattr = btrfs_getattr,
.setattr = btrfs_setattr, .setattr = btrfs_setattr,
.permission = btrfs_permission, .permission = btrfs_permission,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = btrfs_listxattr, .listxattr = btrfs_listxattr,
.removexattr = generic_removexattr,
.get_acl = btrfs_get_acl, .get_acl = btrfs_get_acl,
.set_acl = btrfs_set_acl, .set_acl = btrfs_set_acl,
.update_time = btrfs_update_time, .update_time = btrfs_update_time,
@ -10675,10 +10666,7 @@ static const struct inode_operations btrfs_symlink_inode_operations = {
.getattr = btrfs_getattr, .getattr = btrfs_getattr,
.setattr = btrfs_setattr, .setattr = btrfs_setattr,
.permission = btrfs_permission, .permission = btrfs_permission,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = btrfs_listxattr, .listxattr = btrfs_listxattr,
.removexattr = generic_removexattr,
.update_time = btrfs_update_time, .update_time = btrfs_update_time,
}; };

View File

@ -1486,10 +1486,7 @@ const struct inode_operations ceph_dir_iops = {
.permission = ceph_permission, .permission = ceph_permission,
.getattr = ceph_getattr, .getattr = ceph_getattr,
.setattr = ceph_setattr, .setattr = ceph_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ceph_listxattr, .listxattr = ceph_listxattr,
.removexattr = generic_removexattr,
.get_acl = ceph_get_acl, .get_acl = ceph_get_acl,
.set_acl = ceph_set_acl, .set_acl = ceph_set_acl,
.mknod = ceph_mknod, .mknod = ceph_mknod,

View File

@ -94,10 +94,7 @@ const struct inode_operations ceph_file_iops = {
.permission = ceph_permission, .permission = ceph_permission,
.setattr = ceph_setattr, .setattr = ceph_setattr,
.getattr = ceph_getattr, .getattr = ceph_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ceph_listxattr, .listxattr = ceph_listxattr,
.removexattr = generic_removexattr,
.get_acl = ceph_get_acl, .get_acl = ceph_get_acl,
.set_acl = ceph_set_acl, .set_acl = ceph_set_acl,
}; };
@ -1885,10 +1882,7 @@ static const struct inode_operations ceph_symlink_iops = {
.get_link = simple_get_link, .get_link = simple_get_link,
.setattr = ceph_setattr, .setattr = ceph_setattr,
.getattr = ceph_getattr, .getattr = ceph_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ceph_listxattr, .listxattr = ceph_listxattr,
.removexattr = generic_removexattr,
}; };
int __ceph_setattr(struct inode *inode, struct iattr *attr) int __ceph_setattr(struct inode *inode, struct iattr *attr)

View File

@ -901,30 +901,21 @@ const struct inode_operations cifs_dir_inode_ops = {
.setattr = cifs_setattr, .setattr = cifs_setattr,
.symlink = cifs_symlink, .symlink = cifs_symlink,
.mknod = cifs_mknod, .mknod = cifs_mknod,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = cifs_listxattr, .listxattr = cifs_listxattr,
.removexattr = generic_removexattr,
}; };
const struct inode_operations cifs_file_inode_ops = { const struct inode_operations cifs_file_inode_ops = {
.setattr = cifs_setattr, .setattr = cifs_setattr,
.getattr = cifs_getattr, .getattr = cifs_getattr,
.permission = cifs_permission, .permission = cifs_permission,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = cifs_listxattr, .listxattr = cifs_listxattr,
.removexattr = generic_removexattr,
}; };
const struct inode_operations cifs_symlink_inode_ops = { const struct inode_operations cifs_symlink_inode_ops = {
.readlink = generic_readlink, .readlink = generic_readlink,
.get_link = cifs_get_link, .get_link = cifs_get_link,
.permission = cifs_permission, .permission = cifs_permission,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = cifs_listxattr, .listxattr = cifs_listxattr,
.removexattr = generic_removexattr,
}; };
static int cifs_clone_file_range(struct file *src_file, loff_t off, static int cifs_clone_file_range(struct file *src_file, loff_t off,

View File

@ -1090,10 +1090,7 @@ const struct inode_operations ecryptfs_symlink_iops = {
.permission = ecryptfs_permission, .permission = ecryptfs_permission,
.setattr = ecryptfs_setattr, .setattr = ecryptfs_setattr,
.getattr = ecryptfs_getattr_link, .getattr = ecryptfs_getattr_link,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ecryptfs_listxattr, .listxattr = ecryptfs_listxattr,
.removexattr = generic_removexattr
}; };
const struct inode_operations ecryptfs_dir_iops = { const struct inode_operations ecryptfs_dir_iops = {
@ -1108,20 +1105,14 @@ const struct inode_operations ecryptfs_dir_iops = {
.rename = ecryptfs_rename, .rename = ecryptfs_rename,
.permission = ecryptfs_permission, .permission = ecryptfs_permission,
.setattr = ecryptfs_setattr, .setattr = ecryptfs_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ecryptfs_listxattr, .listxattr = ecryptfs_listxattr,
.removexattr = generic_removexattr
}; };
const struct inode_operations ecryptfs_main_iops = { const struct inode_operations ecryptfs_main_iops = {
.permission = ecryptfs_permission, .permission = ecryptfs_permission,
.setattr = ecryptfs_setattr, .setattr = ecryptfs_setattr,
.getattr = ecryptfs_getattr, .getattr = ecryptfs_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ecryptfs_listxattr, .listxattr = ecryptfs_listxattr,
.removexattr = generic_removexattr
}; };
static int ecryptfs_xattr_get(const struct xattr_handler *handler, static int ecryptfs_xattr_get(const struct xattr_handler *handler,

View File

@ -178,10 +178,7 @@ const struct file_operations ext2_file_operations = {
const struct inode_operations ext2_file_inode_operations = { const struct inode_operations ext2_file_inode_operations = {
#ifdef CONFIG_EXT2_FS_XATTR #ifdef CONFIG_EXT2_FS_XATTR
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ext2_listxattr, .listxattr = ext2_listxattr,
.removexattr = generic_removexattr,
#endif #endif
.setattr = ext2_setattr, .setattr = ext2_setattr,
.get_acl = ext2_get_acl, .get_acl = ext2_get_acl,

View File

@ -428,10 +428,7 @@ const struct inode_operations ext2_dir_inode_operations = {
.mknod = ext2_mknod, .mknod = ext2_mknod,
.rename = ext2_rename, .rename = ext2_rename,
#ifdef CONFIG_EXT2_FS_XATTR #ifdef CONFIG_EXT2_FS_XATTR
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ext2_listxattr, .listxattr = ext2_listxattr,
.removexattr = generic_removexattr,
#endif #endif
.setattr = ext2_setattr, .setattr = ext2_setattr,
.get_acl = ext2_get_acl, .get_acl = ext2_get_acl,
@ -441,10 +438,7 @@ const struct inode_operations ext2_dir_inode_operations = {
const struct inode_operations ext2_special_inode_operations = { const struct inode_operations ext2_special_inode_operations = {
#ifdef CONFIG_EXT2_FS_XATTR #ifdef CONFIG_EXT2_FS_XATTR
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ext2_listxattr, .listxattr = ext2_listxattr,
.removexattr = generic_removexattr,
#endif #endif
.setattr = ext2_setattr, .setattr = ext2_setattr,
.get_acl = ext2_get_acl, .get_acl = ext2_get_acl,

View File

@ -25,10 +25,7 @@ const struct inode_operations ext2_symlink_inode_operations = {
.get_link = page_get_link, .get_link = page_get_link,
.setattr = ext2_setattr, .setattr = ext2_setattr,
#ifdef CONFIG_EXT2_FS_XATTR #ifdef CONFIG_EXT2_FS_XATTR
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ext2_listxattr, .listxattr = ext2_listxattr,
.removexattr = generic_removexattr,
#endif #endif
}; };
@ -37,9 +34,6 @@ const struct inode_operations ext2_fast_symlink_inode_operations = {
.get_link = simple_get_link, .get_link = simple_get_link,
.setattr = ext2_setattr, .setattr = ext2_setattr,
#ifdef CONFIG_EXT2_FS_XATTR #ifdef CONFIG_EXT2_FS_XATTR
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ext2_listxattr, .listxattr = ext2_listxattr,
.removexattr = generic_removexattr,
#endif #endif
}; };

View File

@ -711,10 +711,7 @@ const struct file_operations ext4_file_operations = {
const struct inode_operations ext4_file_inode_operations = { const struct inode_operations ext4_file_inode_operations = {
.setattr = ext4_setattr, .setattr = ext4_setattr,
.getattr = ext4_getattr, .getattr = ext4_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ext4_listxattr, .listxattr = ext4_listxattr,
.removexattr = generic_removexattr,
.get_acl = ext4_get_acl, .get_acl = ext4_get_acl,
.set_acl = ext4_set_acl, .set_acl = ext4_set_acl,
.fiemap = ext4_fiemap, .fiemap = ext4_fiemap,

View File

@ -3882,10 +3882,7 @@ const struct inode_operations ext4_dir_inode_operations = {
.tmpfile = ext4_tmpfile, .tmpfile = ext4_tmpfile,
.rename2 = ext4_rename2, .rename2 = ext4_rename2,
.setattr = ext4_setattr, .setattr = ext4_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ext4_listxattr, .listxattr = ext4_listxattr,
.removexattr = generic_removexattr,
.get_acl = ext4_get_acl, .get_acl = ext4_get_acl,
.set_acl = ext4_set_acl, .set_acl = ext4_set_acl,
.fiemap = ext4_fiemap, .fiemap = ext4_fiemap,
@ -3893,10 +3890,7 @@ const struct inode_operations ext4_dir_inode_operations = {
const struct inode_operations ext4_special_inode_operations = { const struct inode_operations ext4_special_inode_operations = {
.setattr = ext4_setattr, .setattr = ext4_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ext4_listxattr, .listxattr = ext4_listxattr,
.removexattr = generic_removexattr,
.get_acl = ext4_get_acl, .get_acl = ext4_get_acl,
.set_acl = ext4_set_acl, .set_acl = ext4_set_acl,
}; };

View File

@ -90,28 +90,19 @@ const struct inode_operations ext4_encrypted_symlink_inode_operations = {
.readlink = generic_readlink, .readlink = generic_readlink,
.get_link = ext4_encrypted_get_link, .get_link = ext4_encrypted_get_link,
.setattr = ext4_setattr, .setattr = ext4_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ext4_listxattr, .listxattr = ext4_listxattr,
.removexattr = generic_removexattr,
}; };
const struct inode_operations ext4_symlink_inode_operations = { const struct inode_operations ext4_symlink_inode_operations = {
.readlink = generic_readlink, .readlink = generic_readlink,
.get_link = page_get_link, .get_link = page_get_link,
.setattr = ext4_setattr, .setattr = ext4_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ext4_listxattr, .listxattr = ext4_listxattr,
.removexattr = generic_removexattr,
}; };
const struct inode_operations ext4_fast_symlink_inode_operations = { const struct inode_operations ext4_fast_symlink_inode_operations = {
.readlink = generic_readlink, .readlink = generic_readlink,
.get_link = simple_get_link, .get_link = simple_get_link,
.setattr = ext4_setattr, .setattr = ext4_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ext4_listxattr, .listxattr = ext4_listxattr,
.removexattr = generic_removexattr,
}; };

View File

@ -732,10 +732,7 @@ const struct inode_operations f2fs_file_inode_operations = {
.get_acl = f2fs_get_acl, .get_acl = f2fs_get_acl,
.set_acl = f2fs_set_acl, .set_acl = f2fs_set_acl,
#ifdef CONFIG_F2FS_FS_XATTR #ifdef CONFIG_F2FS_FS_XATTR
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = f2fs_listxattr, .listxattr = f2fs_listxattr,
.removexattr = generic_removexattr,
#endif #endif
.fiemap = f2fs_fiemap, .fiemap = f2fs_fiemap,
}; };

View File

@ -1077,10 +1077,7 @@ const struct inode_operations f2fs_encrypted_symlink_inode_operations = {
.getattr = f2fs_getattr, .getattr = f2fs_getattr,
.setattr = f2fs_setattr, .setattr = f2fs_setattr,
#ifdef CONFIG_F2FS_FS_XATTR #ifdef CONFIG_F2FS_FS_XATTR
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = f2fs_listxattr, .listxattr = f2fs_listxattr,
.removexattr = generic_removexattr,
#endif #endif
}; };
@ -1100,10 +1097,7 @@ const struct inode_operations f2fs_dir_inode_operations = {
.get_acl = f2fs_get_acl, .get_acl = f2fs_get_acl,
.set_acl = f2fs_set_acl, .set_acl = f2fs_set_acl,
#ifdef CONFIG_F2FS_FS_XATTR #ifdef CONFIG_F2FS_FS_XATTR
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = f2fs_listxattr, .listxattr = f2fs_listxattr,
.removexattr = generic_removexattr,
#endif #endif
}; };
@ -1113,10 +1107,7 @@ const struct inode_operations f2fs_symlink_inode_operations = {
.getattr = f2fs_getattr, .getattr = f2fs_getattr,
.setattr = f2fs_setattr, .setattr = f2fs_setattr,
#ifdef CONFIG_F2FS_FS_XATTR #ifdef CONFIG_F2FS_FS_XATTR
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = f2fs_listxattr, .listxattr = f2fs_listxattr,
.removexattr = generic_removexattr,
#endif #endif
}; };
@ -1126,9 +1117,6 @@ const struct inode_operations f2fs_special_inode_operations = {
.get_acl = f2fs_get_acl, .get_acl = f2fs_get_acl,
.set_acl = f2fs_set_acl, .set_acl = f2fs_set_acl,
#ifdef CONFIG_F2FS_FS_XATTR #ifdef CONFIG_F2FS_FS_XATTR
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = f2fs_listxattr, .listxattr = f2fs_listxattr,
.removexattr = generic_removexattr,
#endif #endif
}; };

View File

@ -1739,10 +1739,7 @@ static const struct inode_operations fuse_dir_inode_operations = {
.mknod = fuse_mknod, .mknod = fuse_mknod,
.permission = fuse_permission, .permission = fuse_permission,
.getattr = fuse_getattr, .getattr = fuse_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = fuse_listxattr, .listxattr = fuse_listxattr,
.removexattr = generic_removexattr,
}; };
static const struct file_operations fuse_dir_operations = { static const struct file_operations fuse_dir_operations = {
@ -1760,10 +1757,7 @@ static const struct inode_operations fuse_common_inode_operations = {
.setattr = fuse_setattr, .setattr = fuse_setattr,
.permission = fuse_permission, .permission = fuse_permission,
.getattr = fuse_getattr, .getattr = fuse_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = fuse_listxattr, .listxattr = fuse_listxattr,
.removexattr = generic_removexattr,
}; };
static const struct inode_operations fuse_symlink_inode_operations = { static const struct inode_operations fuse_symlink_inode_operations = {
@ -1771,10 +1765,7 @@ static const struct inode_operations fuse_symlink_inode_operations = {
.get_link = fuse_get_link, .get_link = fuse_get_link,
.readlink = generic_readlink, .readlink = generic_readlink,
.getattr = fuse_getattr, .getattr = fuse_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = fuse_listxattr, .listxattr = fuse_listxattr,
.removexattr = generic_removexattr,
}; };
void fuse_init_common(struct inode *inode) void fuse_init_common(struct inode *inode)

View File

@ -2036,10 +2036,7 @@ const struct inode_operations gfs2_file_iops = {
.permission = gfs2_permission, .permission = gfs2_permission,
.setattr = gfs2_setattr, .setattr = gfs2_setattr,
.getattr = gfs2_getattr, .getattr = gfs2_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = gfs2_listxattr, .listxattr = gfs2_listxattr,
.removexattr = generic_removexattr,
.fiemap = gfs2_fiemap, .fiemap = gfs2_fiemap,
.get_acl = gfs2_get_acl, .get_acl = gfs2_get_acl,
.set_acl = gfs2_set_acl, .set_acl = gfs2_set_acl,
@ -2058,10 +2055,7 @@ const struct inode_operations gfs2_dir_iops = {
.permission = gfs2_permission, .permission = gfs2_permission,
.setattr = gfs2_setattr, .setattr = gfs2_setattr,
.getattr = gfs2_getattr, .getattr = gfs2_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = gfs2_listxattr, .listxattr = gfs2_listxattr,
.removexattr = generic_removexattr,
.fiemap = gfs2_fiemap, .fiemap = gfs2_fiemap,
.get_acl = gfs2_get_acl, .get_acl = gfs2_get_acl,
.set_acl = gfs2_set_acl, .set_acl = gfs2_set_acl,
@ -2074,10 +2068,7 @@ const struct inode_operations gfs2_symlink_iops = {
.permission = gfs2_permission, .permission = gfs2_permission,
.setattr = gfs2_setattr, .setattr = gfs2_setattr,
.getattr = gfs2_getattr, .getattr = gfs2_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = gfs2_listxattr, .listxattr = gfs2_listxattr,
.removexattr = generic_removexattr,
.fiemap = gfs2_fiemap, .fiemap = gfs2_fiemap,
}; };

View File

@ -688,7 +688,5 @@ static const struct file_operations hfs_file_operations = {
static const struct inode_operations hfs_file_inode_operations = { static const struct inode_operations hfs_file_inode_operations = {
.lookup = hfs_file_lookup, .lookup = hfs_file_lookup,
.setattr = hfs_inode_setattr, .setattr = hfs_inode_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = generic_listxattr, .listxattr = generic_listxattr,
}; };

View File

@ -562,10 +562,7 @@ const struct inode_operations hfsplus_dir_inode_operations = {
.symlink = hfsplus_symlink, .symlink = hfsplus_symlink,
.mknod = hfsplus_mknod, .mknod = hfsplus_mknod,
.rename = hfsplus_rename, .rename = hfsplus_rename,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = hfsplus_listxattr, .listxattr = hfsplus_listxattr,
.removexattr = generic_removexattr,
#ifdef CONFIG_HFSPLUS_FS_POSIX_ACL #ifdef CONFIG_HFSPLUS_FS_POSIX_ACL
.get_acl = hfsplus_get_posix_acl, .get_acl = hfsplus_get_posix_acl,
.set_acl = hfsplus_set_posix_acl, .set_acl = hfsplus_set_posix_acl,

View File

@ -333,10 +333,7 @@ int hfsplus_file_fsync(struct file *file, loff_t start, loff_t end,
static const struct inode_operations hfsplus_file_inode_operations = { static const struct inode_operations hfsplus_file_inode_operations = {
.setattr = hfsplus_setattr, .setattr = hfsplus_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = hfsplus_listxattr, .listxattr = hfsplus_listxattr,
.removexattr = generic_removexattr,
#ifdef CONFIG_HFSPLUS_FS_POSIX_ACL #ifdef CONFIG_HFSPLUS_FS_POSIX_ACL
.get_acl = hfsplus_get_posix_acl, .get_acl = hfsplus_get_posix_acl,
.set_acl = hfsplus_set_posix_acl, .set_acl = hfsplus_set_posix_acl,

View File

@ -61,10 +61,7 @@ const struct inode_operations jffs2_dir_inode_operations =
.get_acl = jffs2_get_acl, .get_acl = jffs2_get_acl,
.set_acl = jffs2_set_acl, .set_acl = jffs2_set_acl,
.setattr = jffs2_setattr, .setattr = jffs2_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = jffs2_listxattr, .listxattr = jffs2_listxattr,
.removexattr = generic_removexattr
}; };
/***********************************************************************/ /***********************************************************************/

View File

@ -66,10 +66,7 @@ const struct inode_operations jffs2_file_inode_operations =
.get_acl = jffs2_get_acl, .get_acl = jffs2_get_acl,
.set_acl = jffs2_set_acl, .set_acl = jffs2_set_acl,
.setattr = jffs2_setattr, .setattr = jffs2_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = jffs2_listxattr, .listxattr = jffs2_listxattr,
.removexattr = generic_removexattr
}; };
const struct address_space_operations jffs2_file_address_operations = const struct address_space_operations jffs2_file_address_operations =

View File

@ -16,8 +16,5 @@ const struct inode_operations jffs2_symlink_inode_operations =
.readlink = generic_readlink, .readlink = generic_readlink,
.get_link = simple_get_link, .get_link = simple_get_link,
.setattr = jffs2_setattr, .setattr = jffs2_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = jffs2_listxattr, .listxattr = jffs2_listxattr,
.removexattr = generic_removexattr
}; };

View File

@ -140,10 +140,7 @@ int jfs_setattr(struct dentry *dentry, struct iattr *iattr)
} }
const struct inode_operations jfs_file_inode_operations = { const struct inode_operations jfs_file_inode_operations = {
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = jfs_listxattr, .listxattr = jfs_listxattr,
.removexattr = generic_removexattr,
.setattr = jfs_setattr, .setattr = jfs_setattr,
#ifdef CONFIG_JFS_POSIX_ACL #ifdef CONFIG_JFS_POSIX_ACL
.get_acl = jfs_get_acl, .get_acl = jfs_get_acl,

View File

@ -1537,10 +1537,7 @@ const struct inode_operations jfs_dir_inode_operations = {
.rmdir = jfs_rmdir, .rmdir = jfs_rmdir,
.mknod = jfs_mknod, .mknod = jfs_mknod,
.rename = jfs_rename, .rename = jfs_rename,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = jfs_listxattr, .listxattr = jfs_listxattr,
.removexattr = generic_removexattr,
.setattr = jfs_setattr, .setattr = jfs_setattr,
#ifdef CONFIG_JFS_POSIX_ACL #ifdef CONFIG_JFS_POSIX_ACL
.get_acl = jfs_get_acl, .get_acl = jfs_get_acl,

View File

@ -25,19 +25,13 @@ const struct inode_operations jfs_fast_symlink_inode_operations = {
.readlink = generic_readlink, .readlink = generic_readlink,
.get_link = simple_get_link, .get_link = simple_get_link,
.setattr = jfs_setattr, .setattr = jfs_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = jfs_listxattr, .listxattr = jfs_listxattr,
.removexattr = generic_removexattr,
}; };
const struct inode_operations jfs_symlink_inode_operations = { const struct inode_operations jfs_symlink_inode_operations = {
.readlink = generic_readlink, .readlink = generic_readlink,
.get_link = page_get_link, .get_link = page_get_link,
.setattr = jfs_setattr, .setattr = jfs_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = jfs_listxattr, .listxattr = jfs_listxattr,
.removexattr = generic_removexattr,
}; };

View File

@ -1126,9 +1126,6 @@ const struct inode_operations kernfs_dir_iops = {
.permission = kernfs_iop_permission, .permission = kernfs_iop_permission,
.setattr = kernfs_iop_setattr, .setattr = kernfs_iop_setattr,
.getattr = kernfs_iop_getattr, .getattr = kernfs_iop_getattr,
.setxattr = generic_setxattr,
.removexattr = generic_removexattr,
.getxattr = generic_getxattr,
.listxattr = kernfs_iop_listxattr, .listxattr = kernfs_iop_listxattr,
.mkdir = kernfs_iop_mkdir, .mkdir = kernfs_iop_mkdir,

View File

@ -28,9 +28,6 @@ static const struct inode_operations kernfs_iops = {
.permission = kernfs_iop_permission, .permission = kernfs_iop_permission,
.setattr = kernfs_iop_setattr, .setattr = kernfs_iop_setattr,
.getattr = kernfs_iop_getattr, .getattr = kernfs_iop_getattr,
.setxattr = generic_setxattr,
.removexattr = generic_removexattr,
.getxattr = generic_getxattr,
.listxattr = kernfs_iop_listxattr, .listxattr = kernfs_iop_listxattr,
}; };

View File

@ -134,9 +134,6 @@ static const char *kernfs_iop_get_link(struct dentry *dentry,
} }
const struct inode_operations kernfs_symlink_iops = { const struct inode_operations kernfs_symlink_iops = {
.setxattr = generic_setxattr,
.removexattr = generic_removexattr,
.getxattr = generic_getxattr,
.listxattr = kernfs_iop_listxattr, .listxattr = kernfs_iop_listxattr,
.readlink = generic_readlink, .readlink = generic_readlink,
.get_link = kernfs_iop_get_link, .get_link = kernfs_iop_get_link,

View File

@ -899,9 +899,6 @@ static const struct inode_operations nfs3_dir_inode_operations = {
.setattr = nfs_setattr, .setattr = nfs_setattr,
#ifdef CONFIG_NFS_V3_ACL #ifdef CONFIG_NFS_V3_ACL
.listxattr = nfs3_listxattr, .listxattr = nfs3_listxattr,
.getxattr = generic_getxattr,
.setxattr = generic_setxattr,
.removexattr = generic_removexattr,
.get_acl = nfs3_get_acl, .get_acl = nfs3_get_acl,
.set_acl = nfs3_set_acl, .set_acl = nfs3_set_acl,
#endif #endif
@ -913,9 +910,6 @@ static const struct inode_operations nfs3_file_inode_operations = {
.setattr = nfs_setattr, .setattr = nfs_setattr,
#ifdef CONFIG_NFS_V3_ACL #ifdef CONFIG_NFS_V3_ACL
.listxattr = nfs3_listxattr, .listxattr = nfs3_listxattr,
.getxattr = generic_getxattr,
.setxattr = generic_setxattr,
.removexattr = generic_removexattr,
.get_acl = nfs3_get_acl, .get_acl = nfs3_get_acl,
.set_acl = nfs3_set_acl, .set_acl = nfs3_set_acl,
#endif #endif

View File

@ -8941,20 +8941,14 @@ static const struct inode_operations nfs4_dir_inode_operations = {
.permission = nfs_permission, .permission = nfs_permission,
.getattr = nfs_getattr, .getattr = nfs_getattr,
.setattr = nfs_setattr, .setattr = nfs_setattr,
.getxattr = generic_getxattr,
.setxattr = generic_setxattr,
.listxattr = nfs4_listxattr, .listxattr = nfs4_listxattr,
.removexattr = generic_removexattr,
}; };
static const struct inode_operations nfs4_file_inode_operations = { static const struct inode_operations nfs4_file_inode_operations = {
.permission = nfs_permission, .permission = nfs_permission,
.getattr = nfs_getattr, .getattr = nfs_getattr,
.setattr = nfs_setattr, .setattr = nfs_setattr,
.getxattr = generic_getxattr,
.setxattr = generic_setxattr,
.listxattr = nfs4_listxattr, .listxattr = nfs4_listxattr,
.removexattr = generic_removexattr,
}; };
const struct nfs_rpc_ops nfs_v4_clientops = { const struct nfs_rpc_ops nfs_v4_clientops = {

View File

@ -2474,10 +2474,7 @@ const struct inode_operations ocfs2_file_iops = {
.setattr = ocfs2_setattr, .setattr = ocfs2_setattr,
.getattr = ocfs2_getattr, .getattr = ocfs2_getattr,
.permission = ocfs2_permission, .permission = ocfs2_permission,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ocfs2_listxattr, .listxattr = ocfs2_listxattr,
.removexattr = generic_removexattr,
.fiemap = ocfs2_fiemap, .fiemap = ocfs2_fiemap,
.get_acl = ocfs2_iop_get_acl, .get_acl = ocfs2_iop_get_acl,
.set_acl = ocfs2_iop_set_acl, .set_acl = ocfs2_iop_set_acl,

View File

@ -2913,10 +2913,7 @@ const struct inode_operations ocfs2_dir_iops = {
.setattr = ocfs2_setattr, .setattr = ocfs2_setattr,
.getattr = ocfs2_getattr, .getattr = ocfs2_getattr,
.permission = ocfs2_permission, .permission = ocfs2_permission,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ocfs2_listxattr, .listxattr = ocfs2_listxattr,
.removexattr = generic_removexattr,
.fiemap = ocfs2_fiemap, .fiemap = ocfs2_fiemap,
.get_acl = ocfs2_iop_get_acl, .get_acl = ocfs2_iop_get_acl,
.set_acl = ocfs2_iop_set_acl, .set_acl = ocfs2_iop_set_acl,

View File

@ -91,9 +91,6 @@ const struct inode_operations ocfs2_symlink_inode_operations = {
.get_link = page_get_link, .get_link = page_get_link,
.getattr = ocfs2_getattr, .getattr = ocfs2_getattr,
.setattr = ocfs2_setattr, .setattr = ocfs2_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ocfs2_listxattr, .listxattr = ocfs2_listxattr,
.removexattr = generic_removexattr,
.fiemap = ocfs2_fiemap, .fiemap = ocfs2_fiemap,
}; };

View File

@ -296,10 +296,7 @@ const struct inode_operations orangefs_file_inode_operations = {
.set_acl = orangefs_set_acl, .set_acl = orangefs_set_acl,
.setattr = orangefs_setattr, .setattr = orangefs_setattr,
.getattr = orangefs_getattr, .getattr = orangefs_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = orangefs_listxattr, .listxattr = orangefs_listxattr,
.removexattr = generic_removexattr,
.permission = orangefs_permission, .permission = orangefs_permission,
}; };

View File

@ -462,9 +462,6 @@ const struct inode_operations orangefs_dir_inode_operations = {
.rename = orangefs_rename, .rename = orangefs_rename,
.setattr = orangefs_setattr, .setattr = orangefs_setattr,
.getattr = orangefs_getattr, .getattr = orangefs_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.removexattr = generic_removexattr,
.listxattr = orangefs_listxattr, .listxattr = orangefs_listxattr,
.permission = orangefs_permission, .permission = orangefs_permission,
}; };

View File

@ -14,6 +14,5 @@ const struct inode_operations orangefs_symlink_inode_operations = {
.setattr = orangefs_setattr, .setattr = orangefs_setattr,
.getattr = orangefs_getattr, .getattr = orangefs_getattr,
.listxattr = orangefs_listxattr, .listxattr = orangefs_listxattr,
.setxattr = generic_setxattr,
.permission = orangefs_permission, .permission = orangefs_permission,
}; };

View File

@ -1003,10 +1003,7 @@ const struct inode_operations ovl_dir_inode_operations = {
.mknod = ovl_mknod, .mknod = ovl_mknod,
.permission = ovl_permission, .permission = ovl_permission,
.getattr = ovl_dir_getattr, .getattr = ovl_dir_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ovl_listxattr, .listxattr = ovl_listxattr,
.removexattr = generic_removexattr,
.get_acl = ovl_get_acl, .get_acl = ovl_get_acl,
.update_time = ovl_update_time, .update_time = ovl_update_time,
}; };

View File

@ -367,10 +367,7 @@ static const struct inode_operations ovl_file_inode_operations = {
.setattr = ovl_setattr, .setattr = ovl_setattr,
.permission = ovl_permission, .permission = ovl_permission,
.getattr = ovl_getattr, .getattr = ovl_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ovl_listxattr, .listxattr = ovl_listxattr,
.removexattr = generic_removexattr,
.get_acl = ovl_get_acl, .get_acl = ovl_get_acl,
.update_time = ovl_update_time, .update_time = ovl_update_time,
}; };
@ -380,10 +377,7 @@ static const struct inode_operations ovl_symlink_inode_operations = {
.get_link = ovl_get_link, .get_link = ovl_get_link,
.readlink = ovl_readlink, .readlink = ovl_readlink,
.getattr = ovl_getattr, .getattr = ovl_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ovl_listxattr, .listxattr = ovl_listxattr,
.removexattr = generic_removexattr,
.update_time = ovl_update_time, .update_time = ovl_update_time,
}; };

View File

@ -260,10 +260,7 @@ const struct file_operations reiserfs_file_operations = {
const struct inode_operations reiserfs_file_inode_operations = { const struct inode_operations reiserfs_file_inode_operations = {
.setattr = reiserfs_setattr, .setattr = reiserfs_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = reiserfs_listxattr, .listxattr = reiserfs_listxattr,
.removexattr = generic_removexattr,
.permission = reiserfs_permission, .permission = reiserfs_permission,
.get_acl = reiserfs_get_acl, .get_acl = reiserfs_get_acl,
.set_acl = reiserfs_set_acl, .set_acl = reiserfs_set_acl,

View File

@ -1650,10 +1650,7 @@ const struct inode_operations reiserfs_dir_inode_operations = {
.mknod = reiserfs_mknod, .mknod = reiserfs_mknod,
.rename = reiserfs_rename, .rename = reiserfs_rename,
.setattr = reiserfs_setattr, .setattr = reiserfs_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = reiserfs_listxattr, .listxattr = reiserfs_listxattr,
.removexattr = generic_removexattr,
.permission = reiserfs_permission, .permission = reiserfs_permission,
.get_acl = reiserfs_get_acl, .get_acl = reiserfs_get_acl,
.set_acl = reiserfs_set_acl, .set_acl = reiserfs_set_acl,
@ -1667,10 +1664,7 @@ const struct inode_operations reiserfs_symlink_inode_operations = {
.readlink = generic_readlink, .readlink = generic_readlink,
.get_link = page_get_link, .get_link = page_get_link,
.setattr = reiserfs_setattr, .setattr = reiserfs_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = reiserfs_listxattr, .listxattr = reiserfs_listxattr,
.removexattr = generic_removexattr,
.permission = reiserfs_permission, .permission = reiserfs_permission,
}; };
@ -1679,10 +1673,7 @@ const struct inode_operations reiserfs_symlink_inode_operations = {
*/ */
const struct inode_operations reiserfs_special_inode_operations = { const struct inode_operations reiserfs_special_inode_operations = {
.setattr = reiserfs_setattr, .setattr = reiserfs_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = reiserfs_listxattr, .listxattr = reiserfs_listxattr,
.removexattr = generic_removexattr,
.permission = reiserfs_permission, .permission = reiserfs_permission,
.get_acl = reiserfs_get_acl, .get_acl = reiserfs_get_acl,
.set_acl = reiserfs_set_acl, .set_acl = reiserfs_set_acl,

View File

@ -425,7 +425,6 @@ failed_read:
const struct inode_operations squashfs_inode_ops = { const struct inode_operations squashfs_inode_ops = {
.getxattr = generic_getxattr,
.listxattr = squashfs_listxattr .listxattr = squashfs_listxattr
}; };

View File

@ -247,6 +247,5 @@ failed:
const struct inode_operations squashfs_dir_inode_ops = { const struct inode_operations squashfs_dir_inode_ops = {
.lookup = squashfs_lookup, .lookup = squashfs_lookup,
.getxattr = generic_getxattr,
.listxattr = squashfs_listxattr .listxattr = squashfs_listxattr
}; };

View File

@ -120,7 +120,6 @@ const struct address_space_operations squashfs_symlink_aops = {
const struct inode_operations squashfs_symlink_inode_ops = { const struct inode_operations squashfs_symlink_inode_ops = {
.readlink = generic_readlink, .readlink = generic_readlink,
.get_link = page_get_link, .get_link = page_get_link,
.getxattr = generic_getxattr,
.listxattr = squashfs_listxattr .listxattr = squashfs_listxattr
}; };

View File

@ -42,6 +42,5 @@ static inline int squashfs_xattr_lookup(struct super_block *sb,
return 0; return 0;
} }
#define squashfs_listxattr NULL #define squashfs_listxattr NULL
#define generic_getxattr NULL
#define squashfs_xattr_handlers NULL #define squashfs_xattr_handlers NULL
#endif #endif

View File

@ -1182,10 +1182,7 @@ const struct inode_operations ubifs_dir_inode_operations = {
.rename = ubifs_rename, .rename = ubifs_rename,
.setattr = ubifs_setattr, .setattr = ubifs_setattr,
.getattr = ubifs_getattr, .getattr = ubifs_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ubifs_listxattr, .listxattr = ubifs_listxattr,
.removexattr = generic_removexattr,
#ifdef CONFIG_UBIFS_ATIME_SUPPORT #ifdef CONFIG_UBIFS_ATIME_SUPPORT
.update_time = ubifs_update_time, .update_time = ubifs_update_time,
#endif #endif

View File

@ -1621,10 +1621,7 @@ const struct address_space_operations ubifs_file_address_operations = {
const struct inode_operations ubifs_file_inode_operations = { const struct inode_operations ubifs_file_inode_operations = {
.setattr = ubifs_setattr, .setattr = ubifs_setattr,
.getattr = ubifs_getattr, .getattr = ubifs_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ubifs_listxattr, .listxattr = ubifs_listxattr,
.removexattr = generic_removexattr,
#ifdef CONFIG_UBIFS_ATIME_SUPPORT #ifdef CONFIG_UBIFS_ATIME_SUPPORT
.update_time = ubifs_update_time, .update_time = ubifs_update_time,
#endif #endif
@ -1635,10 +1632,7 @@ const struct inode_operations ubifs_symlink_inode_operations = {
.get_link = simple_get_link, .get_link = simple_get_link,
.setattr = ubifs_setattr, .setattr = ubifs_setattr,
.getattr = ubifs_getattr, .getattr = ubifs_getattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = ubifs_listxattr, .listxattr = ubifs_listxattr,
.removexattr = generic_removexattr,
#ifdef CONFIG_UBIFS_ATIME_SUPPORT #ifdef CONFIG_UBIFS_ATIME_SUPPORT
.update_time = ubifs_update_time, .update_time = ubifs_update_time,
#endif #endif

View File

@ -740,22 +740,6 @@ SYSCALL_DEFINE2(fremovexattr, int, fd, const char __user *, name)
return error; return error;
} }
/*
* Find the handler for the prefix and dispatch its get() operation.
*/
ssize_t
generic_getxattr(struct dentry *dentry, struct inode *inode,
const char *name, void *buffer, size_t size)
{
const struct xattr_handler *handler;
handler = xattr_resolve_name(inode, &name);
if (IS_ERR(handler))
return PTR_ERR(handler);
return handler->get(handler, dentry, inode,
name, buffer, size);
}
/* /*
* Combine the results of the list() operation from every xattr_handler in the * Combine the results of the list() operation from every xattr_handler in the
* list. * list.
@ -792,44 +776,7 @@ generic_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size)
} }
return size; return size;
} }
/*
* Find the handler for the prefix and dispatch its set() operation.
*/
int
generic_setxattr(struct dentry *dentry, struct inode *inode, const char *name,
const void *value, size_t size, int flags)
{
const struct xattr_handler *handler;
if (size == 0)
value = ""; /* empty EA, do not remove */
handler = xattr_resolve_name(inode, &name);
if (IS_ERR(handler))
return PTR_ERR(handler);
return handler->set(handler, dentry, inode, name, value, size, flags);
}
/*
* Find the handler for the prefix and dispatch its set() operation to remove
* any associated extended attribute.
*/
int
generic_removexattr(struct dentry *dentry, const char *name)
{
const struct xattr_handler *handler;
handler = xattr_resolve_name(d_inode(dentry), &name);
if (IS_ERR(handler))
return PTR_ERR(handler);
return handler->set(handler, dentry, d_inode(dentry), name, NULL,
0, XATTR_REPLACE);
}
EXPORT_SYMBOL(generic_getxattr);
EXPORT_SYMBOL(generic_listxattr); EXPORT_SYMBOL(generic_listxattr);
EXPORT_SYMBOL(generic_setxattr);
EXPORT_SYMBOL(generic_removexattr);
/** /**
* xattr_full_name - Compute full attribute name from suffix * xattr_full_name - Compute full attribute name from suffix

View File

@ -1036,9 +1036,6 @@ static const struct inode_operations xfs_inode_operations = {
.set_acl = xfs_set_acl, .set_acl = xfs_set_acl,
.getattr = xfs_vn_getattr, .getattr = xfs_vn_getattr,
.setattr = xfs_vn_setattr, .setattr = xfs_vn_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.removexattr = generic_removexattr,
.listxattr = xfs_vn_listxattr, .listxattr = xfs_vn_listxattr,
.fiemap = xfs_vn_fiemap, .fiemap = xfs_vn_fiemap,
.update_time = xfs_vn_update_time, .update_time = xfs_vn_update_time,
@ -1064,9 +1061,6 @@ static const struct inode_operations xfs_dir_inode_operations = {
.set_acl = xfs_set_acl, .set_acl = xfs_set_acl,
.getattr = xfs_vn_getattr, .getattr = xfs_vn_getattr,
.setattr = xfs_vn_setattr, .setattr = xfs_vn_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.removexattr = generic_removexattr,
.listxattr = xfs_vn_listxattr, .listxattr = xfs_vn_listxattr,
.update_time = xfs_vn_update_time, .update_time = xfs_vn_update_time,
.tmpfile = xfs_vn_tmpfile, .tmpfile = xfs_vn_tmpfile,
@ -1092,9 +1086,6 @@ static const struct inode_operations xfs_dir_ci_inode_operations = {
.set_acl = xfs_set_acl, .set_acl = xfs_set_acl,
.getattr = xfs_vn_getattr, .getattr = xfs_vn_getattr,
.setattr = xfs_vn_setattr, .setattr = xfs_vn_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.removexattr = generic_removexattr,
.listxattr = xfs_vn_listxattr, .listxattr = xfs_vn_listxattr,
.update_time = xfs_vn_update_time, .update_time = xfs_vn_update_time,
.tmpfile = xfs_vn_tmpfile, .tmpfile = xfs_vn_tmpfile,
@ -1105,9 +1096,6 @@ static const struct inode_operations xfs_symlink_inode_operations = {
.get_link = xfs_vn_get_link, .get_link = xfs_vn_get_link,
.getattr = xfs_vn_getattr, .getattr = xfs_vn_getattr,
.setattr = xfs_vn_setattr, .setattr = xfs_vn_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.removexattr = generic_removexattr,
.listxattr = xfs_vn_listxattr, .listxattr = xfs_vn_listxattr,
.update_time = xfs_vn_update_time, .update_time = xfs_vn_update_time,
}; };
@ -1117,9 +1105,6 @@ static const struct inode_operations xfs_inline_symlink_inode_operations = {
.get_link = xfs_vn_get_link_inline, .get_link = xfs_vn_get_link_inline,
.getattr = xfs_vn_getattr, .getattr = xfs_vn_getattr,
.setattr = xfs_vn_setattr, .setattr = xfs_vn_setattr,
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.removexattr = generic_removexattr,
.listxattr = xfs_vn_listxattr, .listxattr = xfs_vn_listxattr,
.update_time = xfs_vn_update_time, .update_time = xfs_vn_update_time,
}; };

View File

@ -1739,12 +1739,7 @@ struct inode_operations {
struct inode *, struct dentry *, unsigned int); struct inode *, struct dentry *, unsigned int);
int (*setattr) (struct dentry *, struct iattr *); int (*setattr) (struct dentry *, struct iattr *);
int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *); int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *);
int (*setxattr) (struct dentry *, struct inode *,
const char *, const void *, size_t, int);
ssize_t (*getxattr) (struct dentry *, struct inode *,
const char *, void *, size_t);
ssize_t (*listxattr) (struct dentry *, char *, size_t); ssize_t (*listxattr) (struct dentry *, char *, size_t);
int (*removexattr) (struct dentry *, const char *);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start,
u64 len); u64 len);
int (*update_time)(struct inode *, struct timespec *, int); int (*update_time)(struct inode *, struct timespec *, int);

View File

@ -55,11 +55,7 @@ int vfs_setxattr(struct dentry *, const char *, const void *, size_t, int);
int __vfs_removexattr(struct dentry *, const char *); int __vfs_removexattr(struct dentry *, const char *);
int vfs_removexattr(struct dentry *, const char *); int vfs_removexattr(struct dentry *, const char *);
ssize_t generic_getxattr(struct dentry *dentry, struct inode *inode, const char *name, void *buffer, size_t size);
ssize_t generic_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size); ssize_t generic_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size);
int generic_setxattr(struct dentry *dentry, struct inode *inode,
const char *name, const void *value, size_t size, int flags);
int generic_removexattr(struct dentry *dentry, const char *name);
ssize_t vfs_getxattr_alloc(struct dentry *dentry, const char *name, ssize_t vfs_getxattr_alloc(struct dentry *dentry, const char *name,
char **xattr_value, size_t size, gfp_t flags); char **xattr_value, size_t size, gfp_t flags);

View File

@ -3288,10 +3288,7 @@ static const struct inode_operations shmem_short_symlink_operations = {
.readlink = generic_readlink, .readlink = generic_readlink,
.get_link = simple_get_link, .get_link = simple_get_link,
#ifdef CONFIG_TMPFS_XATTR #ifdef CONFIG_TMPFS_XATTR
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = shmem_listxattr, .listxattr = shmem_listxattr,
.removexattr = generic_removexattr,
#endif #endif
}; };
@ -3299,10 +3296,7 @@ static const struct inode_operations shmem_symlink_inode_operations = {
.readlink = generic_readlink, .readlink = generic_readlink,
.get_link = shmem_get_link, .get_link = shmem_get_link,
#ifdef CONFIG_TMPFS_XATTR #ifdef CONFIG_TMPFS_XATTR
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = shmem_listxattr, .listxattr = shmem_listxattr,
.removexattr = generic_removexattr,
#endif #endif
}; };
@ -3796,10 +3790,7 @@ static const struct inode_operations shmem_inode_operations = {
.getattr = shmem_getattr, .getattr = shmem_getattr,
.setattr = shmem_setattr, .setattr = shmem_setattr,
#ifdef CONFIG_TMPFS_XATTR #ifdef CONFIG_TMPFS_XATTR
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = shmem_listxattr, .listxattr = shmem_listxattr,
.removexattr = generic_removexattr,
.set_acl = simple_set_acl, .set_acl = simple_set_acl,
#endif #endif
}; };
@ -3818,10 +3809,7 @@ static const struct inode_operations shmem_dir_inode_operations = {
.tmpfile = shmem_tmpfile, .tmpfile = shmem_tmpfile,
#endif #endif
#ifdef CONFIG_TMPFS_XATTR #ifdef CONFIG_TMPFS_XATTR
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = shmem_listxattr, .listxattr = shmem_listxattr,
.removexattr = generic_removexattr,
#endif #endif
#ifdef CONFIG_TMPFS_POSIX_ACL #ifdef CONFIG_TMPFS_POSIX_ACL
.setattr = shmem_setattr, .setattr = shmem_setattr,
@ -3831,10 +3819,7 @@ static const struct inode_operations shmem_dir_inode_operations = {
static const struct inode_operations shmem_special_inode_operations = { static const struct inode_operations shmem_special_inode_operations = {
#ifdef CONFIG_TMPFS_XATTR #ifdef CONFIG_TMPFS_XATTR
.setxattr = generic_setxattr,
.getxattr = generic_getxattr,
.listxattr = shmem_listxattr, .listxattr = shmem_listxattr,
.removexattr = generic_removexattr,
#endif #endif
#ifdef CONFIG_TMPFS_POSIX_ACL #ifdef CONFIG_TMPFS_POSIX_ACL
.setattr = shmem_setattr, .setattr = shmem_setattr,

View File

@ -519,7 +519,6 @@ static ssize_t sockfs_listxattr(struct dentry *dentry, char *buffer,
} }
static const struct inode_operations sockfs_inode_ops = { static const struct inode_operations sockfs_inode_ops = {
.getxattr = generic_getxattr,
.listxattr = sockfs_listxattr, .listxattr = sockfs_listxattr,
}; };