Blame view
fs/ext4/xattr_security.c
1.56 KB
ac27a0ec1
|
1 |
/* |
617ba13b3
|
2 |
* linux/fs/ext4/xattr_security.c |
ac27a0ec1
|
3 4 |
* Handler for storing security labels as extended attributes. */ |
ac27a0ec1
|
5 6 |
#include <linux/string.h> #include <linux/fs.h> |
ac27a0ec1
|
7 |
#include <linux/security.h> |
5a0e3ad6a
|
8 |
#include <linux/slab.h> |
3dcf54515
|
9 10 |
#include "ext4_jbd2.h" #include "ext4.h" |
ac27a0ec1
|
11 |
#include "xattr.h" |
ac27a0ec1
|
12 |
static int |
d9a82a040
|
13 |
ext4_xattr_security_get(const struct xattr_handler *handler, |
b296821a7
|
14 15 |
struct dentry *unused, struct inode *inode, const char *name, void *buffer, size_t size) |
ac27a0ec1
|
16 |
{ |
b296821a7
|
17 |
return ext4_xattr_get(inode, EXT4_XATTR_INDEX_SECURITY, |
431547b3c
|
18 |
name, buffer, size); |
ac27a0ec1
|
19 20 21 |
} static int |
d9a82a040
|
22 |
ext4_xattr_security_set(const struct xattr_handler *handler, |
593012268
|
23 24 25 |
struct dentry *unused, struct inode *inode, const char *name, const void *value, size_t size, int flags) |
ac27a0ec1
|
26 |
{ |
593012268
|
27 |
return ext4_xattr_set(inode, EXT4_XATTR_INDEX_SECURITY, |
431547b3c
|
28 |
name, value, size, flags); |
ac27a0ec1
|
29 |
} |
176576dbc
|
30 31 32 |
static int ext4_initxattrs(struct inode *inode, const struct xattr *xattr_array, void *fs_info) |
ac27a0ec1
|
33 |
{ |
9d8f13ba3
|
34 35 36 |
const struct xattr *xattr; handle_t *handle = fs_info; int err = 0; |
ac27a0ec1
|
37 |
|
9d8f13ba3
|
38 39 40 41 42 43 44 |
for (xattr = xattr_array; xattr->name != NULL; xattr++) { err = ext4_xattr_set_handle(handle, inode, EXT4_XATTR_INDEX_SECURITY, xattr->name, xattr->value, xattr->value_len, 0); if (err < 0) break; |
ac27a0ec1
|
45 |
} |
ac27a0ec1
|
46 47 |
return err; } |
9d8f13ba3
|
48 49 50 51 52 53 54 |
int ext4_init_security(handle_t *handle, struct inode *inode, struct inode *dir, const struct qstr *qstr) { return security_inode_init_security(inode, dir, qstr, &ext4_initxattrs, handle); } |
11e275280
|
55 |
const struct xattr_handler ext4_xattr_security_handler = { |
ac27a0ec1
|
56 |
.prefix = XATTR_SECURITY_PREFIX, |
617ba13b3
|
57 58 |
.get = ext4_xattr_security_get, .set = ext4_xattr_security_set, |
ac27a0ec1
|
59 |
}; |