mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 18:13:41 +02:00
erofs: unexport erofs_getxattr()
No external users other than those in xattr.c. Reviewed-by: Hongbo Li <lihongbo22@huawei.com> Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
This commit is contained in:
parent
3afa4da388
commit
09225312f2
108
fs/erofs/xattr.c
108
fs/erofs/xattr.c
|
|
@ -125,58 +125,6 @@ static int erofs_init_inode_xattrs(struct inode *inode)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static bool erofs_xattr_user_list(struct dentry *dentry)
|
||||
{
|
||||
return test_opt(&EROFS_SB(dentry->d_sb)->opt, XATTR_USER);
|
||||
}
|
||||
|
||||
static bool erofs_xattr_trusted_list(struct dentry *dentry)
|
||||
{
|
||||
return capable(CAP_SYS_ADMIN);
|
||||
}
|
||||
|
||||
static int erofs_xattr_generic_get(const struct xattr_handler *handler,
|
||||
struct dentry *unused, struct inode *inode,
|
||||
const char *name, void *buffer, size_t size)
|
||||
{
|
||||
if (handler->flags == EROFS_XATTR_INDEX_USER &&
|
||||
!test_opt(&EROFS_I_SB(inode)->opt, XATTR_USER))
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
return erofs_getxattr(inode, handler->flags, name, buffer, size);
|
||||
}
|
||||
|
||||
const struct xattr_handler erofs_xattr_user_handler = {
|
||||
.prefix = XATTR_USER_PREFIX,
|
||||
.flags = EROFS_XATTR_INDEX_USER,
|
||||
.list = erofs_xattr_user_list,
|
||||
.get = erofs_xattr_generic_get,
|
||||
};
|
||||
|
||||
const struct xattr_handler erofs_xattr_trusted_handler = {
|
||||
.prefix = XATTR_TRUSTED_PREFIX,
|
||||
.flags = EROFS_XATTR_INDEX_TRUSTED,
|
||||
.list = erofs_xattr_trusted_list,
|
||||
.get = erofs_xattr_generic_get,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_EROFS_FS_SECURITY
|
||||
const struct xattr_handler __maybe_unused erofs_xattr_security_handler = {
|
||||
.prefix = XATTR_SECURITY_PREFIX,
|
||||
.flags = EROFS_XATTR_INDEX_SECURITY,
|
||||
.get = erofs_xattr_generic_get,
|
||||
};
|
||||
#endif
|
||||
|
||||
const struct xattr_handler * const erofs_xattr_handlers[] = {
|
||||
&erofs_xattr_user_handler,
|
||||
&erofs_xattr_trusted_handler,
|
||||
#ifdef CONFIG_EROFS_FS_SECURITY
|
||||
&erofs_xattr_security_handler,
|
||||
#endif
|
||||
NULL,
|
||||
};
|
||||
|
||||
static int erofs_xattr_copy_to_buffer(struct erofs_xattr_iter *it,
|
||||
unsigned int len)
|
||||
{
|
||||
|
|
@ -391,8 +339,8 @@ static int erofs_xattr_iter_shared(struct erofs_xattr_iter *it,
|
|||
return i ? ret : -ENODATA;
|
||||
}
|
||||
|
||||
int erofs_getxattr(struct inode *inode, int index, const char *name,
|
||||
void *buffer, size_t buffer_size)
|
||||
static int erofs_getxattr(struct inode *inode, int index, const char *name,
|
||||
void *buffer, size_t buffer_size)
|
||||
{
|
||||
int ret;
|
||||
unsigned int hashbit;
|
||||
|
|
@ -462,6 +410,58 @@ ssize_t erofs_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size)
|
|||
return ret ? ret : it.buffer_ofs;
|
||||
}
|
||||
|
||||
static bool erofs_xattr_user_list(struct dentry *dentry)
|
||||
{
|
||||
return test_opt(&EROFS_SB(dentry->d_sb)->opt, XATTR_USER);
|
||||
}
|
||||
|
||||
static bool erofs_xattr_trusted_list(struct dentry *dentry)
|
||||
{
|
||||
return capable(CAP_SYS_ADMIN);
|
||||
}
|
||||
|
||||
static int erofs_xattr_generic_get(const struct xattr_handler *handler,
|
||||
struct dentry *unused, struct inode *inode,
|
||||
const char *name, void *buffer, size_t size)
|
||||
{
|
||||
if (handler->flags == EROFS_XATTR_INDEX_USER &&
|
||||
!test_opt(&EROFS_I_SB(inode)->opt, XATTR_USER))
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
return erofs_getxattr(inode, handler->flags, name, buffer, size);
|
||||
}
|
||||
|
||||
const struct xattr_handler erofs_xattr_user_handler = {
|
||||
.prefix = XATTR_USER_PREFIX,
|
||||
.flags = EROFS_XATTR_INDEX_USER,
|
||||
.list = erofs_xattr_user_list,
|
||||
.get = erofs_xattr_generic_get,
|
||||
};
|
||||
|
||||
const struct xattr_handler erofs_xattr_trusted_handler = {
|
||||
.prefix = XATTR_TRUSTED_PREFIX,
|
||||
.flags = EROFS_XATTR_INDEX_TRUSTED,
|
||||
.list = erofs_xattr_trusted_list,
|
||||
.get = erofs_xattr_generic_get,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_EROFS_FS_SECURITY
|
||||
const struct xattr_handler __maybe_unused erofs_xattr_security_handler = {
|
||||
.prefix = XATTR_SECURITY_PREFIX,
|
||||
.flags = EROFS_XATTR_INDEX_SECURITY,
|
||||
.get = erofs_xattr_generic_get,
|
||||
};
|
||||
#endif
|
||||
|
||||
const struct xattr_handler * const erofs_xattr_handlers[] = {
|
||||
&erofs_xattr_user_handler,
|
||||
&erofs_xattr_trusted_handler,
|
||||
#ifdef CONFIG_EROFS_FS_SECURITY
|
||||
&erofs_xattr_security_handler,
|
||||
#endif
|
||||
NULL,
|
||||
};
|
||||
|
||||
void erofs_xattr_prefixes_cleanup(struct super_block *sb)
|
||||
{
|
||||
struct erofs_sb_info *sbi = EROFS_SB(sb);
|
||||
|
|
|
|||
|
|
@ -45,17 +45,10 @@ extern const struct xattr_handler * const erofs_xattr_handlers[];
|
|||
|
||||
int erofs_xattr_prefixes_init(struct super_block *sb);
|
||||
void erofs_xattr_prefixes_cleanup(struct super_block *sb);
|
||||
int erofs_getxattr(struct inode *, int, const char *, void *, size_t);
|
||||
ssize_t erofs_listxattr(struct dentry *, char *, size_t);
|
||||
#else
|
||||
static inline int erofs_xattr_prefixes_init(struct super_block *sb) { return 0; }
|
||||
static inline void erofs_xattr_prefixes_cleanup(struct super_block *sb) {}
|
||||
static inline int erofs_getxattr(struct inode *inode, int index,
|
||||
const char *name, void *buffer,
|
||||
size_t buffer_size)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
#define erofs_listxattr (NULL)
|
||||
#define erofs_xattr_handlers (NULL)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user