|
@@ -1150,24 +1150,6 @@ static int empty_dir_setattr(struct dentry *dentry, struct iattr *attr)
|
|
|
return -EPERM;
|
|
|
}
|
|
|
|
|
|
-static int empty_dir_setxattr(struct dentry *dentry, struct inode *inode,
|
|
|
- const char *name, const void *value,
|
|
|
- size_t size, int flags)
|
|
|
-{
|
|
|
- return -EOPNOTSUPP;
|
|
|
-}
|
|
|
-
|
|
|
-static ssize_t empty_dir_getxattr(struct dentry *dentry, struct inode *inode,
|
|
|
- const char *name, void *value, size_t size)
|
|
|
-{
|
|
|
- return -EOPNOTSUPP;
|
|
|
-}
|
|
|
-
|
|
|
-static int empty_dir_removexattr(struct dentry *dentry, const char *name)
|
|
|
-{
|
|
|
- return -EOPNOTSUPP;
|
|
|
-}
|
|
|
-
|
|
|
static ssize_t empty_dir_listxattr(struct dentry *dentry, char *list, size_t size)
|
|
|
{
|
|
|
return -EOPNOTSUPP;
|
|
@@ -1178,9 +1160,6 @@ static const struct inode_operations empty_dir_inode_operations = {
|
|
|
.permission = generic_permission,
|
|
|
.setattr = empty_dir_setattr,
|
|
|
.getattr = empty_dir_getattr,
|
|
|
- .setxattr = empty_dir_setxattr,
|
|
|
- .getxattr = empty_dir_getxattr,
|
|
|
- .removexattr = empty_dir_removexattr,
|
|
|
.listxattr = empty_dir_listxattr,
|
|
|
};
|
|
|
|
|
@@ -1216,6 +1195,7 @@ void make_empty_dir_inode(struct inode *inode)
|
|
|
inode->i_blocks = 0;
|
|
|
|
|
|
inode->i_op = &empty_dir_inode_operations;
|
|
|
+ inode->i_opflags &= ~IOP_XATTR;
|
|
|
inode->i_fop = &empty_dir_operations;
|
|
|
}
|
|
|
|