summaryrefslogtreecommitdiffstats
path: root/fs/kernfs/symlink.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2013-11-28 20:54:41 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-11-30 03:10:48 +0100
commitbc755553df9ab33f389c1a0a8bd0b4f4646e80ef (patch)
treea77c1a97948ebaa6f9a31e9b580ccc0fb254bead /fs/kernfs/symlink.c
parentsysfs, kernfs: implement kernfs_create/destroy_root() (diff)
downloadlinux-bc755553df9ab33f389c1a0a8bd0b4f4646e80ef.tar.xz
linux-bc755553df9ab33f389c1a0a8bd0b4f4646e80ef.zip
sysfs, kernfs: make inode number ida per kernfs_root
kernfs is being updated to allow multiple sysfs_dirent hierarchies so that it can also be used by other users. Currently, inode number is allocated using a global ida, sysfs_ino_ida; however, inos for different hierarchies should be handled separately. This patch makes ino allocation per kernfs_root. sysfs_ino_ida is replaced by kernfs_root->ino_ida and sysfs_new_dirent() is updated to take @root and allocate ino from it. ida_simple_get/remove() are used instead of sysfs_ino_lock and sysfs_alloc/free_ino(). Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/kernfs/symlink.c')
-rw-r--r--fs/kernfs/symlink.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/kernfs/symlink.c b/fs/kernfs/symlink.c
index af3570bb4303..004c16465594 100644
--- a/fs/kernfs/symlink.c
+++ b/fs/kernfs/symlink.c
@@ -30,7 +30,8 @@ struct sysfs_dirent *kernfs_create_link(struct sysfs_dirent *parent,
struct sysfs_addrm_cxt acxt;
int error;
- sd = sysfs_new_dirent(name, S_IFLNK|S_IRWXUGO, SYSFS_KOBJ_LINK);
+ sd = sysfs_new_dirent(kernfs_root(parent), name, S_IFLNK|S_IRWXUGO,
+ SYSFS_KOBJ_LINK);
if (!sd)
return ERR_PTR(-ENOMEM);