Blame view
include/linux/xattr.h
3.61 KB
b24413180 License cleanup: ... |
1 |
/* SPDX-License-Identifier: GPL-2.0 */ |
1da177e4c Linux-2.6.12-rc2 |
2 3 4 5 6 7 8 9 10 11 12 |
/* File: linux/xattr.h Extended attributes handling. Copyright (C) 2001 by Andreas Gruenbacher <a.gruenbacher@computer.org> Copyright (c) 2001-2002 Silicon Graphics, Inc. All Rights Reserved. Copyright (c) 2004 Red Hat, Inc., James Morris <jmorris@redhat.com> */ #ifndef _LINUX_XATTR_H #define _LINUX_XATTR_H |
1dbe39424 xattr.h: expose s... |
13 |
|
38f386574 xattr: extract si... |
14 |
#include <linux/slab.h> |
1dbe39424 xattr.h: expose s... |
15 |
#include <linux/types.h> |
38f386574 xattr: extract si... |
16 |
#include <linux/spinlock.h> |
3bef735ad vfs/xattr: mm/shm... |
17 |
#include <linux/mm.h> |
607ca46e9 UAPI: (Scripted) ... |
18 |
#include <uapi/linux/xattr.h> |
1dbe39424 xattr.h: expose s... |
19 |
|
5b0a2075a [PATCH] cleanup i... |
20 21 |
struct inode; struct dentry; |
1da177e4c Linux-2.6.12-rc2 |
22 |
|
98e9cb571 vfs: Distinguish ... |
23 24 25 26 27 |
/* * struct xattr_handler: When @name is set, match attributes with exactly that * name. When @prefix is set instead, match attributes with that prefix and * with a non-empty suffix. */ |
1da177e4c Linux-2.6.12-rc2 |
28 |
struct xattr_handler { |
98e9cb571 vfs: Distinguish ... |
29 |
const char *name; |
bb4354538 fs: xattr_handler... |
30 |
const char *prefix; |
e409de992 9p: xattr simplif... |
31 |
int flags; /* fs private flags */ |
764a5c6b1 xattr handlers: S... |
32 |
bool (*list)(struct dentry *dentry); |
3484eba91 FROMLIST: Add fla... |
33 |
int (*get)(const struct xattr_handler *handler, struct dentry *dentry, |
b296821a7 xattr_handler: pa... |
34 |
struct inode *inode, const char *name, void *buffer, |
3484eba91 FROMLIST: Add fla... |
35 36 |
size_t size, int flags); int (*set)(const struct xattr_handler *handler, struct dentry *dentry, |
593012268 switch xattr_hand... |
37 38 |
struct inode *inode, const char *name, const void *buffer, size_t size, int flags); |
1da177e4c Linux-2.6.12-rc2 |
39 |
}; |
e409de992 9p: xattr simplif... |
40 |
const char *xattr_full_name(const struct xattr_handler *, const char *); |
9d8f13ba3 security: new sec... |
41 |
struct xattr { |
9548906b2 xattr: Constify -... |
42 |
const char *name; |
9d8f13ba3 security: new sec... |
43 44 45 |
void *value; size_t value_len; }; |
3484eba91 FROMLIST: Add fla... |
46 47 |
ssize_t __vfs_getxattr(struct dentry *dentry, struct inode *inode, const char *name, void *buffer, size_t size, int flags); |
8f0cfa52a xattr: add missin... |
48 |
ssize_t vfs_getxattr(struct dentry *, const char *, void *, size_t); |
659564c8a [PATCH] Introduce... |
49 |
ssize_t vfs_listxattr(struct dentry *d, char *list, size_t size); |
5d6c31910 xattr: Add __vfs_... |
50 |
int __vfs_setxattr(struct dentry *, struct inode *, const char *, const void *, size_t, int); |
b1ab7e4b2 VFS: Factor out p... |
51 |
int __vfs_setxattr_noperm(struct dentry *, const char *, const void *, size_t, int); |
08b5d5014 xattr: break dele... |
52 |
int __vfs_setxattr_locked(struct dentry *, const char *, const void *, size_t, int, struct inode **); |
8f0cfa52a xattr: add missin... |
53 |
int vfs_setxattr(struct dentry *, const char *, const void *, size_t, int); |
5d6c31910 xattr: Add __vfs_... |
54 |
int __vfs_removexattr(struct dentry *, const char *); |
08b5d5014 xattr: break dele... |
55 |
int __vfs_removexattr_locked(struct dentry *, const char *, struct inode **); |
8f0cfa52a xattr: add missin... |
56 |
int vfs_removexattr(struct dentry *, const char *); |
5be196e5f [PATCH] add vfs_*... |
57 |
|
1da177e4c Linux-2.6.12-rc2 |
58 |
ssize_t generic_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size); |
1601fbad2 xattr: define vfs... |
59 60 |
ssize_t vfs_getxattr_alloc(struct dentry *dentry, const char *name, char **xattr_value, size_t size, gfp_t flags); |
38f386574 xattr: extract si... |
61 |
|
cab8d289c xattr: add a func... |
62 |
int xattr_supported_namespace(struct inode *inode, const char *prefix); |
98e9cb571 vfs: Distinguish ... |
63 64 65 66 |
static inline const char *xattr_prefix(const struct xattr_handler *handler) { return handler->prefix ?: handler->name; } |
38f386574 xattr: extract si... |
67 68 69 70 71 72 73 74 75 |
struct simple_xattrs { struct list_head head; spinlock_t lock; }; struct simple_xattr { struct list_head list; char *name; size_t size; |
43951585e xattr.h: Replace ... |
76 |
char value[]; |
38f386574 xattr: extract si... |
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
}; /* * initialize the simple_xattrs structure */ static inline void simple_xattrs_init(struct simple_xattrs *xattrs) { INIT_LIST_HEAD(&xattrs->head); spin_lock_init(&xattrs->lock); } /* * free all the xattrs */ static inline void simple_xattrs_free(struct simple_xattrs *xattrs) { struct simple_xattr *xattr, *node; list_for_each_entry_safe(xattr, node, &xattrs->head, list) { kfree(xattr->name); |
3bef735ad vfs/xattr: mm/shm... |
97 |
kvfree(xattr); |
38f386574 xattr: extract si... |
98 99 100 101 102 103 104 |
} } struct simple_xattr *simple_xattr_alloc(const void *value, size_t size); int simple_xattr_get(struct simple_xattrs *xattrs, const char *name, void *buffer, size_t size); int simple_xattr_set(struct simple_xattrs *xattrs, const char *name, |
a46a22955 kernfs: Add remov... |
105 106 |
const void *value, size_t size, int flags, ssize_t *removed_size); |
786534b92 tmpfs: listxattr ... |
107 108 |
ssize_t simple_xattr_list(struct inode *inode, struct simple_xattrs *xattrs, char *buffer, size_t size); |
38f386574 xattr: extract si... |
109 110 |
void simple_xattr_list_add(struct simple_xattrs *xattrs, struct simple_xattr *new_xattr); |
1da177e4c Linux-2.6.12-rc2 |
111 |
#endif /* _LINUX_XATTR_H */ |