summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2013-11-23 17:21:50 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-11-27 13:57:56 -0800
commit5d0e26bb59a680a5d97db5b6629941603e8de229 (patch)
tree221776b29c3cdc947c5e8637856a111d1dc05368 /include/linux
parent879f40d193bb3c6c13930e88e3e9d5d7baf84d19 (diff)
sysfs, kernfs: introduce kernfs_create_link()
Separate out kernfs symlink interface - kernfs_create_link() - which takes and returns sysfs_dirents, from sysfs_do_create_link_sd(). sysfs_do_create_link_sd() now just determines the parent and target sysfs_dirents and invokes the new interface and handles dup warning. This patch doesn't introduce behavior changes. v2: Dummy implementation for !CONFIG_SYSFS updated to return -ENOSYS. Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/kernfs.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/kernfs.h b/include/linux/kernfs.h
index 83e151ad0619..fe6290d41776 100644
--- a/include/linux/kernfs.h
+++ b/include/linux/kernfs.h
@@ -8,17 +8,26 @@
#define __LINUX_KERNFS_H
#include <linux/kernel.h>
+#include <linux/err.h>
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);
#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,