Files
kernel_xiaomi_cepheus/include/linux
Tejun Heo 3eef34ad7d kernfs: implement kernfs_get_parent(), kernfs_name/path() and friends
kernfs_node->parent and ->name are currently marked as "published"
indicating that kernfs users may access them directly; however, those
fields may get updated by kernfs_rename[_ns]() and unrestricted access
may lead to erroneous values or oops.

Protect ->parent and ->name updates with a irq-safe spinlock
kernfs_rename_lock and implement the following accessors for these
fields.

* kernfs_name()		- format the node's name into the specified buffer
* kernfs_path()		- format the node's path into the specified buffer
* pr_cont_kernfs_name()	- pr_cont a node's name (doesn't need buffer)
* pr_cont_kernfs_path()	- pr_cont a node's path (doesn't need buffer)
* kernfs_get_parent()	- pin and return a node's parent

All can be called under any context.  The recursive sysfs_pathname()
in fs/sysfs/dir.c is replaced with kernfs_path() and
sysfs_rename_dir_ns() is updated to use kernfs_get_parent() instead of
dereferencing parent directly.

v2: Dummy definition of kernfs_path() for !CONFIG_KERNFS was missing
    static inline making it cause a lot of build warnings.  Add it.

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