|
@@ -45,7 +45,6 @@
|
|
|
#include <linux/swapops.h>
|
|
|
#include <linux/mempolicy.h>
|
|
|
#include <linux/namei.h>
|
|
|
-#include <linux/xattr.h>
|
|
|
#include <asm/uaccess.h>
|
|
|
#include <asm/div64.h>
|
|
|
#include <asm/pgtable.h>
|
|
@@ -179,7 +178,6 @@ static struct address_space_operations shmem_aops;
|
|
|
static struct file_operations shmem_file_operations;
|
|
|
static struct inode_operations shmem_inode_operations;
|
|
|
static struct inode_operations shmem_dir_inode_operations;
|
|
|
-static struct inode_operations shmem_special_inode_operations;
|
|
|
static struct vm_operations_struct shmem_vm_ops;
|
|
|
|
|
|
static struct backing_dev_info shmem_backing_dev_info = {
|
|
@@ -1300,7 +1298,6 @@ shmem_get_inode(struct super_block *sb, int mode, dev_t dev)
|
|
|
|
|
|
switch (mode & S_IFMT) {
|
|
|
default:
|
|
|
- inode->i_op = &shmem_special_inode_operations;
|
|
|
init_special_inode(inode, mode, dev);
|
|
|
break;
|
|
|
case S_IFREG:
|
|
@@ -1804,12 +1801,6 @@ static void shmem_put_link(struct dentry *dentry, struct nameidata *nd, void *co
|
|
|
static struct inode_operations shmem_symlink_inline_operations = {
|
|
|
.readlink = generic_readlink,
|
|
|
.follow_link = shmem_follow_link_inline,
|
|
|
-#ifdef CONFIG_TMPFS_XATTR
|
|
|
- .setxattr = generic_setxattr,
|
|
|
- .getxattr = generic_getxattr,
|
|
|
- .listxattr = generic_listxattr,
|
|
|
- .removexattr = generic_removexattr,
|
|
|
-#endif
|
|
|
};
|
|
|
|
|
|
static struct inode_operations shmem_symlink_inode_operations = {
|
|
@@ -1817,12 +1808,6 @@ static struct inode_operations shmem_symlink_inode_operations = {
|
|
|
.readlink = generic_readlink,
|
|
|
.follow_link = shmem_follow_link,
|
|
|
.put_link = shmem_put_link,
|
|
|
-#ifdef CONFIG_TMPFS_XATTR
|
|
|
- .setxattr = generic_setxattr,
|
|
|
- .getxattr = generic_getxattr,
|
|
|
- .listxattr = generic_listxattr,
|
|
|
- .removexattr = generic_removexattr,
|
|
|
-#endif
|
|
|
};
|
|
|
|
|
|
static int shmem_parse_options(char *options, int *mode, uid_t *uid, gid_t *gid, unsigned long *blocks, unsigned long *inodes)
|
|
@@ -1942,12 +1927,6 @@ static void shmem_put_super(struct super_block *sb)
|
|
|
sb->s_fs_info = NULL;
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_TMPFS_XATTR
|
|
|
-static struct xattr_handler *shmem_xattr_handlers[];
|
|
|
-#else
|
|
|
-#define shmem_xattr_handlers NULL
|
|
|
-#endif
|
|
|
-
|
|
|
static int shmem_fill_super(struct super_block *sb,
|
|
|
void *data, int silent)
|
|
|
{
|
|
@@ -1998,7 +1977,6 @@ static int shmem_fill_super(struct super_block *sb,
|
|
|
sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
|
|
|
sb->s_magic = TMPFS_MAGIC;
|
|
|
sb->s_op = &shmem_ops;
|
|
|
- sb->s_xattr = shmem_xattr_handlers;
|
|
|
|
|
|
inode = shmem_get_inode(sb, S_IFDIR | mode, 0);
|
|
|
if (!inode)
|
|
@@ -2087,12 +2065,6 @@ static struct file_operations shmem_file_operations = {
|
|
|
static struct inode_operations shmem_inode_operations = {
|
|
|
.truncate = shmem_truncate,
|
|
|
.setattr = shmem_notify_change,
|
|
|
-#ifdef CONFIG_TMPFS_XATTR
|
|
|
- .setxattr = generic_setxattr,
|
|
|
- .getxattr = generic_getxattr,
|
|
|
- .listxattr = generic_listxattr,
|
|
|
- .removexattr = generic_removexattr,
|
|
|
-#endif
|
|
|
};
|
|
|
|
|
|
static struct inode_operations shmem_dir_inode_operations = {
|
|
@@ -2106,21 +2078,6 @@ static struct inode_operations shmem_dir_inode_operations = {
|
|
|
.rmdir = shmem_rmdir,
|
|
|
.mknod = shmem_mknod,
|
|
|
.rename = shmem_rename,
|
|
|
-#ifdef CONFIG_TMPFS_XATTR
|
|
|
- .setxattr = generic_setxattr,
|
|
|
- .getxattr = generic_getxattr,
|
|
|
- .listxattr = generic_listxattr,
|
|
|
- .removexattr = generic_removexattr,
|
|
|
-#endif
|
|
|
-#endif
|
|
|
-};
|
|
|
-
|
|
|
-static struct inode_operations shmem_special_inode_operations = {
|
|
|
-#ifdef CONFIG_TMPFS_XATTR
|
|
|
- .setxattr = generic_setxattr,
|
|
|
- .getxattr = generic_getxattr,
|
|
|
- .listxattr = generic_listxattr,
|
|
|
- .removexattr = generic_removexattr,
|
|
|
#endif
|
|
|
};
|
|
|
|
|
@@ -2146,48 +2103,6 @@ static struct vm_operations_struct shmem_vm_ops = {
|
|
|
};
|
|
|
|
|
|
|
|
|
-#ifdef CONFIG_TMPFS_SECURITY
|
|
|
-
|
|
|
-static size_t shmem_xattr_security_list(struct inode *inode, char *list, size_t list_len,
|
|
|
- const char *name, size_t name_len)
|
|
|
-{
|
|
|
- return security_inode_listsecurity(inode, list, list_len);
|
|
|
-}
|
|
|
-
|
|
|
-static int shmem_xattr_security_get(struct inode *inode, const char *name, void *buffer, size_t size)
|
|
|
-{
|
|
|
- if (strcmp(name, "") == 0)
|
|
|
- return -EINVAL;
|
|
|
- return security_inode_getsecurity(inode, name, buffer, size);
|
|
|
-}
|
|
|
-
|
|
|
-static int shmem_xattr_security_set(struct inode *inode, const char *name, const void *value, size_t size, int flags)
|
|
|
-{
|
|
|
- if (strcmp(name, "") == 0)
|
|
|
- return -EINVAL;
|
|
|
- return security_inode_setsecurity(inode, name, value, size, flags);
|
|
|
-}
|
|
|
-
|
|
|
-static struct xattr_handler shmem_xattr_security_handler = {
|
|
|
- .prefix = XATTR_SECURITY_PREFIX,
|
|
|
- .list = shmem_xattr_security_list,
|
|
|
- .get = shmem_xattr_security_get,
|
|
|
- .set = shmem_xattr_security_set,
|
|
|
-};
|
|
|
-
|
|
|
-#endif /* CONFIG_TMPFS_SECURITY */
|
|
|
-
|
|
|
-#ifdef CONFIG_TMPFS_XATTR
|
|
|
-
|
|
|
-static struct xattr_handler *shmem_xattr_handlers[] = {
|
|
|
-#ifdef CONFIG_TMPFS_SECURITY
|
|
|
- &shmem_xattr_security_handler,
|
|
|
-#endif
|
|
|
- NULL
|
|
|
-};
|
|
|
-
|
|
|
-#endif /* CONFIG_TMPFS_XATTR */
|
|
|
-
|
|
|
static struct super_block *shmem_get_sb(struct file_system_type *fs_type,
|
|
|
int flags, const char *dev_name, void *data)
|
|
|
{
|