Files
odroid-linux/include/linux
Tejun Heo ba7443bc65 sysfs, kernfs: implement kernfs_create/destroy_root()
There currently is single kernfs hierarchy in the whole system which
is used for sysfs.  kernfs needs to support multiple hierarchies to
allow other users.  This patch introduces struct kernfs_root which
serves as the root of each kernfs hierarchy and implements
kernfs_create/destroy_root().

* Each kernfs_root is associated with a root sd (sysfs_dentry).  The
  root is freed when the root sd is released and kernfs_destory_root()
  simply invokes kernfs_remove() on the root sd.  sysfs_remove_one()
  is updated to handle release of the root sd.  Note that ps_iattr
  update in sysfs_remove_one() is trivially updated for readability.

* Root sd's are now dynamically allocated using sysfs_new_dirent().
  Update sysfs_alloc_ino() so that it gives out ino from 1 so that the
  root sd still gets ino 1.

* While kernfs currently only points to the root sd, it'll soon grow
  fields which are specific to each hierarchy.  As determining a given
  sd's root will be necessary, sd->s_dir.root is added.  This backlink
  fits better as a separate field in sd; however, sd->s_dir is inside
  union with space to spare, so use it to save space and provide
  kernfs_root() accessor to determine the root sd.

* As hierarchies may be destroyed now, each mount needs to hold onto
  the hierarchy it's attached to.  Update sysfs_fill_super() and
  sysfs_kill_sb() so that they get and put the kernfs_root
  respectively.

* sysfs_root is replaced with kernfs_root which is dynamically created
  by invoking kernfs_create_root() from sysfs_init().

This patch doesn't introduce any visible behavior changes.

v2: kernfs_create_root() forgot to set @sd->priv.  Fixed.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-29 18:10:48 -08:00
..
2013-08-14 13:55:15 +05:30
2013-03-01 13:39:00 -08:00
2013-07-30 11:53:12 -04:00
2013-05-29 15:50:34 -04:00
2012-12-02 00:05:12 +00:00
2013-11-08 08:59:44 -07:00
2013-10-28 13:33:58 -06:00
2013-07-03 16:07:39 -07:00
2013-09-23 21:44:16 -04:00
2013-11-15 09:32:23 +09:00
2013-11-15 09:32:21 +09:00
2013-11-09 00:16:29 -05:00
2013-03-12 11:30:04 -07:00
2013-05-01 16:36:22 +05:30
2012-10-16 18:49:15 -07:00
2013-07-15 11:25:00 +09:30
2013-05-07 18:38:27 -07:00
2013-04-29 18:28:40 -07:00
2013-08-26 20:15:23 +09:00
2013-06-17 16:38:57 -07:00
2013-08-22 22:13:54 -07:00
2013-11-15 22:04:17 -05:00
2013-09-29 18:27:03 -07:00
2013-10-16 18:40:57 -07:00
2013-06-13 17:51:04 -07:00
2013-06-17 16:38:57 -07:00
2013-10-28 20:07:50 -04:00
2013-09-13 15:09:52 +02:00
2013-09-13 15:09:52 +02:00
2013-08-09 10:49:00 +02:00
2013-07-26 16:19:48 -07:00
2013-11-15 09:32:23 +09:00
2013-04-30 17:04:06 -07:00
2013-08-28 21:35:14 -07:00
2013-04-01 11:04:50 -07:00
2013-05-31 00:48:22 -07:00
2013-11-13 12:09:11 +09:00
2013-09-23 15:44:58 +09:30
2013-11-09 00:16:19 -05:00
2013-11-09 00:16:19 -05:00
2013-07-03 16:08:05 -07:00
2013-10-14 17:15:48 +02:00
2012-12-11 17:22:27 -08:00
2013-05-04 14:47:26 -04:00
2013-09-03 16:40:32 -04:00
2012-10-10 22:41:05 -04:00
2013-06-12 12:37:30 +01:00
2013-04-29 15:54:28 -07:00
2013-10-17 00:36:06 +02:00
2013-06-21 11:32:51 +02:00
2013-04-12 10:26:23 +02:00
2013-07-03 16:08:05 -07:00
2013-06-17 16:38:57 -07:00
2013-09-10 18:56:32 -04:00
2013-04-30 15:50:12 +05:30
2013-09-12 15:38:02 -07:00
2013-05-21 12:25:02 -05:00
2013-03-20 12:10:38 -04:00
2013-08-05 10:52:36 -06:00
2013-05-27 10:57:53 +09:00
2013-11-14 15:16:16 +11:00
2013-10-17 15:53:09 -04:00
2013-07-10 18:11:34 -07:00