Commit | Line | Data |
---|---|---|
b8441ed2 TH |
1 | /* |
2 | * kernfs.h - pseudo filesystem decoupled from vfs locking | |
3 | * | |
4 | * This file is released under the GPLv2. | |
5 | */ | |
6 | ||
7 | #ifndef __LINUX_KERNFS_H | |
8 | #define __LINUX_KERNFS_H | |
9 | ||
879f40d1 | 10 | #include <linux/kernel.h> |
5d0e26bb | 11 | #include <linux/err.h> |
879f40d1 | 12 | |
5d60418e TH |
13 | struct file; |
14 | struct iattr; | |
15 | ||
b8441ed2 TH |
16 | struct sysfs_dirent; |
17 | ||
879f40d1 TH |
18 | #ifdef CONFIG_SYSFS |
19 | ||
5d0e26bb TH |
20 | struct sysfs_dirent *kernfs_create_link(struct sysfs_dirent *parent, |
21 | const char *name, | |
22 | struct sysfs_dirent *target); | |
879f40d1 TH |
23 | void kernfs_remove(struct sysfs_dirent *sd); |
24 | int kernfs_remove_by_name_ns(struct sysfs_dirent *parent, const char *name, | |
25 | const void *ns); | |
890ece16 TH |
26 | int kernfs_rename_ns(struct sysfs_dirent *sd, struct sysfs_dirent *new_parent, |
27 | const char *new_name, const void *new_ns); | |
5d60418e | 28 | int kernfs_setattr(struct sysfs_dirent *sd, const struct iattr *iattr); |
879f40d1 TH |
29 | |
30 | #else /* CONFIG_SYSFS */ | |
31 | ||
5d0e26bb TH |
32 | static inline struct sysfs_dirent * |
33 | kernfs_create_link(struct sysfs_dirent *parent, const char *name, | |
34 | struct sysfs_dirent *target) | |
35 | { return ERR_PTR(-ENOSYS); } | |
36 | ||
879f40d1 TH |
37 | static inline void kernfs_remove(struct sysfs_dirent *sd) { } |
38 | ||
39 | static inline int kernfs_remove_by_name_ns(struct sysfs_dirent *parent, | |
40 | const char *name, const void *ns) | |
41 | { return -ENOSYS; } | |
42 | ||
890ece16 TH |
43 | static inline int kernfs_rename_ns(struct sysfs_dirent *sd, |
44 | struct sysfs_dirent *new_parent, | |
45 | const char *new_name, const void *new_ns) | |
46 | { return -ENOSYS; } | |
47 | ||
5d60418e TH |
48 | static inline int kernfs_setattr(struct sysfs_dirent *sd, |
49 | const struct iattr *iattr) | |
50 | { return -ENOSYS; } | |
51 | ||
879f40d1 TH |
52 | #endif /* CONFIG_SYSFS */ |
53 | ||
54 | static inline int kernfs_remove_by_name(struct sysfs_dirent *parent, | |
55 | const char *name) | |
56 | { | |
57 | return kernfs_remove_by_name_ns(parent, name, NULL); | |
58 | } | |
59 | ||
b8441ed2 | 60 | #endif /* __LINUX_KERNFS_H */ |