Blame view
fs/kernfs/kernfs-internal.h
3.36 KB
ae6621b07 sysfs, kernfs: mo... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/* * fs/kernfs/kernfs-internal.h - kernfs internal header file * * Copyright (c) 2001-3 Patrick Mochel * Copyright (c) 2007 SUSE Linux Products GmbH * Copyright (c) 2007, 2013 Tejun Heo <teheo@suse.de> * * This file is released under the GPLv2. */ #ifndef __KERNFS_INTERNAL_H #define __KERNFS_INTERNAL_H #include <linux/lockdep.h> #include <linux/fs.h> |
fd7b9f7b9 sysfs, kernfs: mo... |
16 |
#include <linux/mutex.h> |
2322392b0 kernfs: implement... |
17 |
#include <linux/xattr.h> |
ae6621b07 sysfs, kernfs: mo... |
18 19 |
#include <linux/kernfs.h> |
c525aaddc kernfs: s/sysfs/k... |
20 |
struct kernfs_iattrs { |
9a8049aff kernfs: update sy... |
21 22 23 |
struct iattr ia_iattr; void *ia_secdata; u32 ia_secdata_len; |
2322392b0 kernfs: implement... |
24 25 |
struct simple_xattrs xattrs; |
ae6621b07 sysfs, kernfs: mo... |
26 |
}; |
81c173cb5 kernfs: remove KE... |
27 28 |
/* +1 to avoid triggering overflow warning when negating it */ #define KN_DEACTIVATED_BIAS (INT_MIN + 1) |
ae6621b07 sysfs, kernfs: mo... |
29 |
|
df23fc39b kernfs: s/sysfs/k... |
30 |
/* KERNFS_TYPE_MASK and types are defined in include/linux/kernfs.h */ |
ae6621b07 sysfs, kernfs: mo... |
31 |
|
ba7443bc6 sysfs, kernfs: im... |
32 |
/** |
324a56e16 kernfs: s/sysfs_d... |
33 34 |
* kernfs_root - find out the kernfs_root a kernfs_node belongs to * @kn: kernfs_node of interest |
ba7443bc6 sysfs, kernfs: im... |
35 |
* |
324a56e16 kernfs: s/sysfs_d... |
36 |
* Return the kernfs_root @kn belongs to. |
ba7443bc6 sysfs, kernfs: im... |
37 |
*/ |
324a56e16 kernfs: s/sysfs_d... |
38 |
static inline struct kernfs_root *kernfs_root(struct kernfs_node *kn) |
ba7443bc6 sysfs, kernfs: im... |
39 40 |
{ /* if parent exists, it's always a dir; otherwise, @sd is a dir */ |
adc5e8b58 kernfs: drop s_ p... |
41 42 43 |
if (kn->parent) kn = kn->parent; return kn->dir.root; |
ba7443bc6 sysfs, kernfs: im... |
44 |
} |
ae6621b07 sysfs, kernfs: mo... |
45 |
/* |
fa736a951 sysfs, kernfs: mo... |
46 47 |
* mount.c */ |
c525aaddc kernfs: s/sysfs/k... |
48 |
struct kernfs_super_info { |
7d568a838 kernfs: implement... |
49 |
struct super_block *sb; |
fa736a951 sysfs, kernfs: mo... |
50 51 52 53 54 55 56 |
/* * The root associated with this super_block. Each super_block is * identified by the root and ns it's associated with. */ struct kernfs_root *root; /* |
324a56e16 kernfs: s/sysfs_d... |
57 |
* Each sb is associated with one namespace tag, currently the |
c525aaddc kernfs: s/sysfs/k... |
58 59 60 |
* network namespace of the task which mounted this kernfs * instance. If multiple tags become necessary, make the following * an array and compare kernfs_node tag against every entry. |
fa736a951 sysfs, kernfs: mo... |
61 62 |
*/ const void *ns; |
7d568a838 kernfs: implement... |
63 64 65 |
/* anchored at kernfs_root->supers, protected by kernfs_mutex */ struct list_head node; |
fa736a951 sysfs, kernfs: mo... |
66 |
}; |
c525aaddc kernfs: s/sysfs/k... |
67 |
#define kernfs_info(SB) ((struct kernfs_super_info *)(SB->s_fs_info)) |
fa736a951 sysfs, kernfs: mo... |
68 |
|
319ba91d3 kernfs: don't set... |
69 70 71 72 73 74 |
static inline struct kernfs_node *kernfs_dentry_node(struct dentry *dentry) { if (d_really_is_negative(dentry)) return NULL; return d_inode(dentry)->i_private; } |
f41c59345 kernfs: fix kernf... |
75 |
extern const struct super_operations kernfs_sops; |
a797bfc30 kernfs: s/sysfs/k... |
76 |
extern struct kmem_cache *kernfs_node_cache; |
fa736a951 sysfs, kernfs: mo... |
77 78 |
/* |
ffed24e22 sysfs, kernfs: mo... |
79 80 |
* inode.c */ |
e72a1a8b3 kernfs: Switch to... |
81 |
extern const struct xattr_handler *kernfs_xattr_handlers[]; |
c637b8acb kernfs: s/sysfs/k... |
82 83 84 |
void kernfs_evict_inode(struct inode *inode); int kernfs_iop_permission(struct inode *inode, int mask); int kernfs_iop_setattr(struct dentry *dentry, struct iattr *iattr); |
a528d35e8 statx: Add a syst... |
85 86 |
int kernfs_iop_getattr(const struct path *path, struct kstat *stat, u32 request_mask, unsigned int query_flags); |
c637b8acb kernfs: s/sysfs/k... |
87 |
ssize_t kernfs_iop_listxattr(struct dentry *dentry, char *buf, size_t size); |
488dee96b kernfs: allow cre... |
88 |
int __kernfs_setattr(struct kernfs_node *kn, const struct iattr *iattr); |
ffed24e22 sysfs, kernfs: mo... |
89 |
|
fd7b9f7b9 sysfs, kernfs: mo... |
90 91 92 |
/* * dir.c */ |
a797bfc30 kernfs: s/sysfs/k... |
93 94 95 96 |
extern struct mutex kernfs_mutex; extern const struct dentry_operations kernfs_dops; extern const struct file_operations kernfs_dir_fops; extern const struct inode_operations kernfs_dir_iops; |
fd7b9f7b9 sysfs, kernfs: mo... |
97 |
|
c637b8acb kernfs: s/sysfs/k... |
98 99 |
struct kernfs_node *kernfs_get_active(struct kernfs_node *kn); void kernfs_put_active(struct kernfs_node *kn); |
988cd7afb kernfs: remove ke... |
100 |
int kernfs_add_one(struct kernfs_node *kn); |
db4aad209 kernfs: associate... |
101 102 |
struct kernfs_node *kernfs_new_node(struct kernfs_node *parent, const char *name, umode_t mode, |
488dee96b kernfs: allow cre... |
103 |
kuid_t uid, kgid_t gid, |
db4aad209 kernfs: associate... |
104 |
unsigned flags); |
ba16b2846 kernfs: add an AP... |
105 106 |
struct kernfs_node *kernfs_find_and_get_node_by_ino(struct kernfs_root *root, unsigned int ino); |
fd7b9f7b9 sysfs, kernfs: mo... |
107 |
|
414985ae2 sysfs, kernfs: mo... |
108 109 110 |
/* * file.c */ |
a797bfc30 kernfs: s/sysfs/k... |
111 |
extern const struct file_operations kernfs_file_fops; |
414985ae2 sysfs, kernfs: mo... |
112 |
|
0e67db2f9 kernfs: add kernf... |
113 |
void kernfs_drain_open_files(struct kernfs_node *kn); |
414985ae2 sysfs, kernfs: mo... |
114 |
|
2072f1afd sysfs, kernfs: mo... |
115 116 117 |
/* * symlink.c */ |
a797bfc30 kernfs: s/sysfs/k... |
118 |
extern const struct inode_operations kernfs_symlink_iops; |
2072f1afd sysfs, kernfs: mo... |
119 |
|
ae6621b07 sysfs, kernfs: mo... |
120 |
#endif /* __KERNFS_INTERNAL_H */ |