diff options
author | Tejun Heo <tj@kernel.org> | 2013-11-28 14:54:41 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-11-29 21:10:48 -0500 |
commit | bc755553df9ab33f389c1a0a8bd0b4f4646e80ef (patch) | |
tree | a77c1a97948ebaa6f9a31e9b580ccc0fb254bead /include/linux/kernfs.h | |
parent | ba7443bc656e5236c316b2acacc8b551f872910f (diff) |
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 'include/linux/kernfs.h')
-rw-r--r-- | include/linux/kernfs.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/kernfs.h b/include/linux/kernfs.h index f75548b8ed7a..fad8b986800f 100644 --- a/include/linux/kernfs.h +++ b/include/linux/kernfs.h | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/err.h> | 11 | #include <linux/err.h> |
12 | #include <linux/list.h> | 12 | #include <linux/list.h> |
13 | #include <linux/mutex.h> | 13 | #include <linux/mutex.h> |
14 | #include <linux/idr.h> | ||
14 | #include <linux/lockdep.h> | 15 | #include <linux/lockdep.h> |
15 | 16 | ||
16 | struct file; | 17 | struct file; |
@@ -23,6 +24,9 @@ struct sysfs_dirent; | |||
23 | struct kernfs_root { | 24 | struct kernfs_root { |
24 | /* published fields */ | 25 | /* published fields */ |
25 | struct sysfs_dirent *sd; | 26 | struct sysfs_dirent *sd; |
27 | |||
28 | /* private fields, do not use outside kernfs proper */ | ||
29 | struct ida ino_ida; | ||
26 | }; | 30 | }; |
27 | 31 | ||
28 | struct sysfs_open_file { | 32 | struct sysfs_open_file { |