Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
fs
reiserfs
xattr_user.c
Go to the documentation of this file.
1
#include "
reiserfs.h
"
2
#include <linux/errno.h>
3
#include <linux/fs.h>
4
#include <
linux/pagemap.h
>
5
#include <linux/xattr.h>
6
#include "
xattr.h
"
7
#include <asm/uaccess.h>
8
9
static
int
10
user_get(
struct
dentry
*
dentry
,
const
char
*
name
,
void
*
buffer
,
size_t
size
,
11
int
handler_flags)
12
{
13
14
if
(
strlen
(name) <
sizeof
(
XATTR_USER_PREFIX
))
15
return
-
EINVAL
;
16
if
(!
reiserfs_xattrs_user
(dentry->
d_sb
))
17
return
-
EOPNOTSUPP
;
18
return
reiserfs_xattr_get(dentry->
d_inode
, name, buffer, size);
19
}
20
21
static
int
22
user_set
(
struct
dentry *dentry,
const
char
*name,
const
void
*buffer,
23
size_t
size,
int
flags
,
int
handler_flags)
24
{
25
if
(
strlen
(name) <
sizeof
(
XATTR_USER_PREFIX
))
26
return
-
EINVAL
;
27
28
if
(!
reiserfs_xattrs_user
(dentry->
d_sb
))
29
return
-
EOPNOTSUPP
;
30
return
reiserfs_xattr_set(dentry->
d_inode
, name, buffer, size, flags);
31
}
32
33
static
size_t
user_list(
struct
dentry *dentry,
char
*
list
,
size_t
list_size,
34
const
char
*name,
size_t
name_len
,
int
handler_flags)
35
{
36
const
size_t
len
= name_len + 1;
37
38
if
(!
reiserfs_xattrs_user
(dentry->
d_sb
))
39
return
0;
40
if
(list && len <= list_size) {
41
memcpy
(list, name, name_len);
42
list[
name_len
] =
'\0'
;
43
}
44
return
len;
45
}
46
47
const
struct
xattr_handler
reiserfs_xattr_user_handler
= {
48
.prefix =
XATTR_USER_PREFIX
,
49
.get = user_get,
50
.set =
user_set
,
51
.list = user_list,
52
};
Generated on Thu Jan 10 2013 14:44:23 for Linux Kernel by
1.8.2