1 /*-------------------------------------------------------------------------*
2 * File: fs/jffs2/xattr_trusted.c
3 * XATTR support on JFFS2 FileSystem
5 * Implemented by KaiGai Kohei <kaigai@ak.jp.nec.com>
6 * Copyright (C) 2006 NEC Corporation
8 * For licensing information, see the file 'LICENCE' in the jffs2 directory.
9 *-------------------------------------------------------------------------*/
10 #include <linux/kernel.h>
12 #include <linux/jffs2.h>
13 #include <linux/xattr.h>
14 #include <linux/mtd/mtd.h>
17 static int jffs2_trusted_getxattr(struct inode
*inode
, const char *name
,
18 void *buffer
, size_t size
)
20 if (!strcmp(name
, ""))
22 return do_jffs2_getxattr(inode
, JFFS2_XPREFIX_TRUSTED
, name
, buffer
, size
);
25 static int jffs2_trusted_setxattr(struct inode
*inode
, const char *name
, const void *buffer
,
26 size_t size
, int flags
)
28 if (!strcmp(name
, ""))
30 return do_jffs2_setxattr(inode
, JFFS2_XPREFIX_TRUSTED
, name
, buffer
, size
, flags
);
33 static size_t jffs2_trusted_listxattr(struct inode
*inode
, char *list
, size_t list_size
,
34 const char *name
, size_t name_len
)
36 size_t retlen
= XATTR_TRUSTED_PREFIX_LEN
+ name_len
+ 1;
38 if (list
&& retlen
<=list_size
) {
39 strcpy(list
, XATTR_TRUSTED_PREFIX
);
40 strcpy(list
+ XATTR_TRUSTED_PREFIX_LEN
, name
);
46 struct xattr_handler jffs2_trusted_xattr_handler
= {
47 .prefix
= XATTR_TRUSTED_PREFIX
,
48 .list
= jffs2_trusted_listxattr
,
49 .set
= jffs2_trusted_setxattr
,
50 .get
= jffs2_trusted_getxattr