OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [fs/] [ext4/] [xattr_user.c] - Blame information for rev 79

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
2
 * linux/fs/ext4/xattr_user.c
3
 * Handler for extended user attributes.
4
 *
5
 * Copyright (C) 2001 by Andreas Gruenbacher, <a.gruenbacher@computer.org>
6
 */
7
 
8
#include <linux/module.h>
9
#include <linux/string.h>
10
#include <linux/fs.h>
11
#include <linux/ext4_jbd2.h>
12
#include <linux/ext4_fs.h>
13
#include "xattr.h"
14
 
15
#define XATTR_USER_PREFIX "user."
16
 
17
static size_t
18
ext4_xattr_user_list(struct inode *inode, char *list, size_t list_size,
19
                     const char *name, size_t name_len)
20
{
21
        const size_t prefix_len = sizeof(XATTR_USER_PREFIX)-1;
22
        const size_t total_len = prefix_len + name_len + 1;
23
 
24
        if (!test_opt(inode->i_sb, XATTR_USER))
25
                return 0;
26
 
27
        if (list && total_len <= list_size) {
28
                memcpy(list, XATTR_USER_PREFIX, prefix_len);
29
                memcpy(list+prefix_len, name, name_len);
30
                list[prefix_len + name_len] = '\0';
31
        }
32
        return total_len;
33
}
34
 
35
static int
36
ext4_xattr_user_get(struct inode *inode, const char *name,
37
                    void *buffer, size_t size)
38
{
39
        if (strcmp(name, "") == 0)
40
                return -EINVAL;
41
        if (!test_opt(inode->i_sb, XATTR_USER))
42
                return -EOPNOTSUPP;
43
        return ext4_xattr_get(inode, EXT4_XATTR_INDEX_USER, name, buffer, size);
44
}
45
 
46
static int
47
ext4_xattr_user_set(struct inode *inode, const char *name,
48
                    const void *value, size_t size, int flags)
49
{
50
        if (strcmp(name, "") == 0)
51
                return -EINVAL;
52
        if (!test_opt(inode->i_sb, XATTR_USER))
53
                return -EOPNOTSUPP;
54
        return ext4_xattr_set(inode, EXT4_XATTR_INDEX_USER, name,
55
                              value, size, flags);
56
}
57
 
58
struct xattr_handler ext4_xattr_user_handler = {
59
        .prefix = XATTR_USER_PREFIX,
60
        .list   = ext4_xattr_user_list,
61
        .get    = ext4_xattr_user_get,
62
        .set    = ext4_xattr_user_set,
63
};

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.