diff options
author | Andreas Gruenbacher <agruenba@redhat.com> | 2016-09-29 11:48:41 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-10-07 20:10:43 -0400 |
commit | f5c244383725a6de06bc62fa7c54c0ea0d942eec (patch) | |
tree | f88b5e7494daf74e3871648fd72e8fe9ef2fb31f /fs/libfs.c | |
parent | 5f6e59ae8277cef221fdbf9b12f0c4f80db59944 (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.c | 22 |
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 | ||
1153 | static 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 | |||
1160 | static 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 | |||
1166 | static int empty_dir_removexattr(struct dentry *dentry, const char *name) | ||
1167 | { | ||
1168 | return -EOPNOTSUPP; | ||
1169 | } | ||
1170 | |||
1171 | static ssize_t empty_dir_listxattr(struct dentry *dentry, char *list, size_t size) | 1153 | static 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 | ||