ceph: remove unused vxattr length helpers
ceph_listxattr() now calculates the length of vxattrs dynamically, so these helpers, which incorrectly ignore vxattr.exists_cb(), can be removed. Signed-off-by: David Disseldorp <ddiss@suse.de> Reviewed-by: "Yan, Zheng" <zyan@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
parent
2b2abcac8c
commit
d0f191d20c
@ -1161,17 +1161,15 @@ static int __init init_ceph(void)
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
ceph_flock_init();
|
ceph_flock_init();
|
||||||
ceph_xattr_init();
|
|
||||||
ret = register_filesystem(&ceph_fs_type);
|
ret = register_filesystem(&ceph_fs_type);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out_xattr;
|
goto out_caches;
|
||||||
|
|
||||||
pr_info("loaded (mds proto %d)\n", CEPH_MDSC_PROTOCOL);
|
pr_info("loaded (mds proto %d)\n", CEPH_MDSC_PROTOCOL);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
out_xattr:
|
out_caches:
|
||||||
ceph_xattr_exit();
|
|
||||||
destroy_caches();
|
destroy_caches();
|
||||||
out:
|
out:
|
||||||
return ret;
|
return ret;
|
||||||
@ -1181,7 +1179,6 @@ static void __exit exit_ceph(void)
|
|||||||
{
|
{
|
||||||
dout("exit_ceph\n");
|
dout("exit_ceph\n");
|
||||||
unregister_filesystem(&ceph_fs_type);
|
unregister_filesystem(&ceph_fs_type);
|
||||||
ceph_xattr_exit();
|
|
||||||
destroy_caches();
|
destroy_caches();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -922,8 +922,6 @@ ssize_t __ceph_getxattr(struct inode *, const char *, void *, size_t);
|
|||||||
extern ssize_t ceph_listxattr(struct dentry *, char *, size_t);
|
extern ssize_t ceph_listxattr(struct dentry *, char *, size_t);
|
||||||
extern void __ceph_build_xattrs_blob(struct ceph_inode_info *ci);
|
extern void __ceph_build_xattrs_blob(struct ceph_inode_info *ci);
|
||||||
extern void __ceph_destroy_xattrs(struct ceph_inode_info *ci);
|
extern void __ceph_destroy_xattrs(struct ceph_inode_info *ci);
|
||||||
extern void __init ceph_xattr_init(void);
|
|
||||||
extern void ceph_xattr_exit(void);
|
|
||||||
extern const struct xattr_handler *ceph_xattr_handlers[];
|
extern const struct xattr_handler *ceph_xattr_handlers[];
|
||||||
|
|
||||||
#ifdef CONFIG_SECURITY
|
#ifdef CONFIG_SECURITY
|
||||||
|
@ -363,7 +363,6 @@ static struct ceph_vxattr ceph_dir_vxattrs[] = {
|
|||||||
},
|
},
|
||||||
{ .name = NULL, 0 } /* Required table terminator */
|
{ .name = NULL, 0 } /* Required table terminator */
|
||||||
};
|
};
|
||||||
static size_t ceph_dir_vxattrs_name_size; /* total size of all names */
|
|
||||||
|
|
||||||
/* files */
|
/* files */
|
||||||
|
|
||||||
@ -389,7 +388,6 @@ static struct ceph_vxattr ceph_file_vxattrs[] = {
|
|||||||
},
|
},
|
||||||
{ .name = NULL, 0 } /* Required table terminator */
|
{ .name = NULL, 0 } /* Required table terminator */
|
||||||
};
|
};
|
||||||
static size_t ceph_file_vxattrs_name_size; /* total size of all names */
|
|
||||||
|
|
||||||
static struct ceph_vxattr *ceph_inode_vxattrs(struct inode *inode)
|
static struct ceph_vxattr *ceph_inode_vxattrs(struct inode *inode)
|
||||||
{
|
{
|
||||||
@ -400,47 +398,6 @@ static struct ceph_vxattr *ceph_inode_vxattrs(struct inode *inode)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static size_t ceph_vxattrs_name_size(struct ceph_vxattr *vxattrs)
|
|
||||||
{
|
|
||||||
if (vxattrs == ceph_dir_vxattrs)
|
|
||||||
return ceph_dir_vxattrs_name_size;
|
|
||||||
if (vxattrs == ceph_file_vxattrs)
|
|
||||||
return ceph_file_vxattrs_name_size;
|
|
||||||
BUG_ON(vxattrs);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Compute the aggregate size (including terminating '\0') of all
|
|
||||||
* virtual extended attribute names in the given vxattr table.
|
|
||||||
*/
|
|
||||||
static size_t __init vxattrs_name_size(struct ceph_vxattr *vxattrs)
|
|
||||||
{
|
|
||||||
struct ceph_vxattr *vxattr;
|
|
||||||
size_t size = 0;
|
|
||||||
|
|
||||||
for (vxattr = vxattrs; vxattr->name; vxattr++) {
|
|
||||||
if (!(vxattr->flags & VXATTR_FLAG_HIDDEN))
|
|
||||||
size += vxattr->name_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
return size;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Routines called at initialization and exit time */
|
|
||||||
|
|
||||||
void __init ceph_xattr_init(void)
|
|
||||||
{
|
|
||||||
ceph_dir_vxattrs_name_size = vxattrs_name_size(ceph_dir_vxattrs);
|
|
||||||
ceph_file_vxattrs_name_size = vxattrs_name_size(ceph_file_vxattrs);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ceph_xattr_exit(void)
|
|
||||||
{
|
|
||||||
ceph_dir_vxattrs_name_size = 0;
|
|
||||||
ceph_file_vxattrs_name_size = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct ceph_vxattr *ceph_match_vxattr(struct inode *inode,
|
static struct ceph_vxattr *ceph_match_vxattr(struct inode *inode,
|
||||||
const char *name)
|
const char *name)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user