1/*
2 * linux/fs/hfsplus/xattr_trusted.c
3 *
4 * Vyacheslav Dubeyko <slava@dubeyko.com>
5 *
6 * Handler for trusted extended attributes.
7 */
8
9#include <linux/nls.h>
10
11#include "hfsplus_fs.h"
12#include "xattr.h"
13
14static int hfsplus_trusted_getxattr(struct dentry *dentry, const char *name,
15					void *buffer, size_t size, int type)
16{
17	return hfsplus_getxattr(dentry, name, buffer, size,
18				XATTR_TRUSTED_PREFIX,
19				XATTR_TRUSTED_PREFIX_LEN);
20}
21
22static int hfsplus_trusted_setxattr(struct dentry *dentry, const char *name,
23		const void *buffer, size_t size, int flags, int type)
24{
25	return hfsplus_setxattr(dentry, name, buffer, size, flags,
26				XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN);
27}
28
29static size_t hfsplus_trusted_listxattr(struct dentry *dentry, char *list,
30		size_t list_size, const char *name, size_t name_len, int type)
31{
32	/*
33	 * This method is not used.
34	 * It is used hfsplus_listxattr() instead of generic_listxattr().
35	 */
36	return -EOPNOTSUPP;
37}
38
39const struct xattr_handler hfsplus_xattr_trusted_handler = {
40	.prefix	= XATTR_TRUSTED_PREFIX,
41	.list	= hfsplus_trusted_listxattr,
42	.get	= hfsplus_trusted_getxattr,
43	.set	= hfsplus_trusted_setxattr,
44};
45