summaryrefslogtreecommitdiffstats
path: root/fs/libfs.c
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruenba@redhat.com>2016-09-29 11:48:41 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2016-10-07 20:10:43 -0400
commitf5c244383725a6de06bc62fa7c54c0ea0d942eec (patch)
treef88b5e7494daf74e3871648fd72e8fe9ef2fb31f /fs/libfs.c
parent5f6e59ae8277cef221fdbf9b12f0c4f80db59944 (diff)
libfs: Use IOP_XATTR flag for empty directory handling
Instead of special xattr inode operations, use the IOP_XATTR inode operations flag for the special libfs empty directories. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/libfs.c')
-rw-r--r--fs/libfs.c22
1 files changed, 1 insertions, 21 deletions
diff --git a/fs/libfs.c b/fs/libfs.c
index cfa9576ea886..b322d756b20d 100644
--- a/fs/libfs.c
+++ b/fs/libfs.c
@@ -1150,24 +1150,6 @@ static int empty_dir_setattr(struct dentry *dentry, struct iattr *attr)
1150 return -EPERM; 1150 return -EPERM;
1151} 1151}
1152 1152
1153static int empty_dir_setxattr(struct dentry *dentry, struct inode *inode,
1154 const char *name, const void *value,
1155 size_t size, int flags)
1156{
1157 return -EOPNOTSUPP;
1158}
1159
1160static ssize_t empty_dir_getxattr(struct dentry *dentry, struct inode *inode,
1161 const char *name, void *value, size_t size)
1162{
1163 return -EOPNOTSUPP;
1164}
1165
1166static int empty_dir_removexattr(struct dentry *dentry, const char *name)
1167{
1168 return -EOPNOTSUPP;
1169}
1170
1171static ssize_t empty_dir_listxattr(struct dentry *dentry, char *list, size_t size) 1153static ssize_t empty_dir_listxattr(struct dentry *dentry, char *list, size_t size)
1172{ 1154{
1173 return -EOPNOTSUPP; 1155 return -EOPNOTSUPP;
@@ -1178,9 +1160,6 @@ static const struct inode_operations empty_dir_inode_operations = {
1178 .permission = generic_permission, 1160 .permission = generic_permission,
1179 .setattr = empty_dir_setattr, 1161 .setattr = empty_dir_setattr,
1180 .getattr = empty_dir_getattr, 1162 .getattr = empty_dir_getattr,
1181 .setxattr = empty_dir_setxattr,
1182 .getxattr = empty_dir_getxattr,
1183 .removexattr = empty_dir_removexattr,
1184 .listxattr = empty_dir_listxattr, 1163 .listxattr = empty_dir_listxattr,
1185}; 1164};
1186 1165
@@ -1216,6 +1195,7 @@ void make_empty_dir_inode(struct inode *inode)
1216 inode->i_blocks = 0; 1195 inode->i_blocks = 0;
1217 1196
1218 inode->i_op = &empty_dir_inode_operations; 1197 inode->i_op = &empty_dir_inode_operations;
1198 inode->i_opflags &= ~IOP_XATTR;
1219 inode->i_fop = &empty_dir_operations; 1199 inode->i_fop = &empty_dir_operations;
1220} 1200}
1221 1201