Blame view
fs/jffs2/security.c
1.95 KB
652ecc20d [JFFS2][XATTR] Un... |
1 2 |
/* * JFFS2 -- Journalling Flash File System, Version 2. |
aa98d7cf5 [JFFS2][XATTR] XA... |
3 |
* |
c00c310ea [JFFS2] Tidy up l... |
4 |
* Copyright © 2006 NEC Corporation |
aa98d7cf5 [JFFS2][XATTR] XA... |
5 |
* |
652ecc20d [JFFS2][XATTR] Un... |
6 7 8 9 10 |
* Created by KaiGai Kohei <kaigai@ak.jp.nec.com> * * For licensing information, see the file 'LICENCE' in this directory. * */ |
c00c310ea [JFFS2] Tidy up l... |
11 |
|
aa98d7cf5 [JFFS2][XATTR] XA... |
12 13 14 15 16 17 18 19 20 21 22 23 |
#include <linux/kernel.h> #include <linux/slab.h> #include <linux/fs.h> #include <linux/time.h> #include <linux/pagemap.h> #include <linux/highmem.h> #include <linux/crc32.h> #include <linux/jffs2.h> #include <linux/xattr.h> #include <linux/mtd/mtd.h> #include <linux/security.h> #include "nodelist.h" |
9d8f13ba3 security: new sec... |
24 |
/* ---- Initial Security Label(s) Attachment callback --- */ |
273a65ad3 jffs2: make jffs2... |
25 26 |
static int jffs2_initxattrs(struct inode *inode, const struct xattr *xattr_array, void *fs_info) |
aa98d7cf5 [JFFS2][XATTR] XA... |
27 |
{ |
9d8f13ba3 security: new sec... |
28 29 |
const struct xattr *xattr; int err = 0; |
aa98d7cf5 [JFFS2][XATTR] XA... |
30 |
|
9d8f13ba3 security: new sec... |
31 32 33 34 35 36 |
for (xattr = xattr_array; xattr->name != NULL; xattr++) { err = do_jffs2_setxattr(inode, JFFS2_XPREFIX_SECURITY, xattr->name, xattr->value, xattr->value_len, 0); if (err < 0) break; |
aa98d7cf5 [JFFS2][XATTR] XA... |
37 |
} |
9d8f13ba3 security: new sec... |
38 39 |
return err; } |
aa98d7cf5 [JFFS2][XATTR] XA... |
40 |
|
9d8f13ba3 security: new sec... |
41 42 43 44 45 46 |
/* ---- Initial Security Label(s) Attachment ----------- */ int jffs2_init_security(struct inode *inode, struct inode *dir, const struct qstr *qstr) { return security_inode_init_security(inode, dir, qstr, &jffs2_initxattrs, NULL); |
aa98d7cf5 [JFFS2][XATTR] XA... |
47 48 49 |
} /* ---- XATTR Handler for "security.*" ----------------- */ |
d9a82a040 xattr handlers: P... |
50 |
static int jffs2_security_getxattr(const struct xattr_handler *handler, |
b296821a7 xattr_handler: pa... |
51 52 |
struct dentry *unused, struct inode *inode, const char *name, void *buffer, size_t size) |
aa98d7cf5 [JFFS2][XATTR] XA... |
53 |
{ |
b296821a7 xattr_handler: pa... |
54 |
return do_jffs2_getxattr(inode, JFFS2_XPREFIX_SECURITY, |
431547b3c sanitize xattr ha... |
55 |
name, buffer, size); |
aa98d7cf5 [JFFS2][XATTR] XA... |
56 |
} |
d9a82a040 xattr handlers: P... |
57 |
static int jffs2_security_setxattr(const struct xattr_handler *handler, |
593012268 switch xattr_hand... |
58 59 60 |
struct dentry *unused, struct inode *inode, const char *name, const void *buffer, size_t size, int flags) |
aa98d7cf5 [JFFS2][XATTR] XA... |
61 |
{ |
593012268 switch xattr_hand... |
62 |
return do_jffs2_setxattr(inode, JFFS2_XPREFIX_SECURITY, |
431547b3c sanitize xattr ha... |
63 |
name, buffer, size, flags); |
aa98d7cf5 [JFFS2][XATTR] XA... |
64 |
} |
365f0cb9d jffs2: constify x... |
65 |
const struct xattr_handler jffs2_security_xattr_handler = { |
aa98d7cf5 [JFFS2][XATTR] XA... |
66 |
.prefix = XATTR_SECURITY_PREFIX, |
aa98d7cf5 [JFFS2][XATTR] XA... |
67 68 69 |
.set = jffs2_security_setxattr, .get = jffs2_security_getxattr }; |