/* * kernfs.h - pseudo filesystem decoupled from vfs locking * * This file is released under the GPLv2. */ #ifndef __LINUX_KERNFS_H #define __LINUX_KERNFS_H #include #include struct sysfs_dirent; #ifdef CONFIG_SYSFS struct sysfs_dirent *kernfs_create_link(struct sysfs_dirent *parent, const char *name, struct sysfs_dirent *target); void kernfs_remove(struct sysfs_dirent *sd); int kernfs_remove_by_name_ns(struct sysfs_dirent *parent, const char *name, const void *ns); int kernfs_rename_ns(struct sysfs_dirent *sd, struct sysfs_dirent *new_parent, const char *new_name, const void *new_ns); #else /* CONFIG_SYSFS */ static inline struct sysfs_dirent * kernfs_create_link(struct sysfs_dirent *parent, const char *name, struct sysfs_dirent *target) { return ERR_PTR(-ENOSYS); } static inline void kernfs_remove(struct sysfs_dirent *sd) { } static inline int kernfs_remove_by_name_ns(struct sysfs_dirent *parent, const char *name, const void *ns) { return -ENOSYS; } static inline int kernfs_rename_ns(struct sysfs_dirent *sd, struct sysfs_dirent *new_parent, const char *new_name, const void *new_ns) { return -ENOSYS; } #endif /* CONFIG_SYSFS */ static inline int kernfs_remove_by_name(struct sysfs_dirent *parent, const char *name) { return kernfs_remove_by_name_ns(parent, name, NULL); } #endif /* __LINUX_KERNFS_H */