Files
kernel-eswin-eic7700/include/linux
Tejun Heo f6acf8bb6a sysfs, kernfs: introduce kernfs_ops
We're in the process of separating out core sysfs functionality into
kernfs which will deal with sysfs_dirents directly.  This patch
introduces kernfs_ops which hosts methods kernfs users implement and
updates fs/sysfs/file.c such that sysfs_kf_*() functions populate
kernfs_ops and kernfs_file_*() functions call the matching entries
from kernfs_ops.

kernfs_ops contains the following groups of methods.

* seq_show() - for kernfs files which use seq_file for reads.

* read() - for direct read implementations.  Used iff seq_show() is
  not implemented.

* write() - for writes.

* mmap() - for mmaps.

Notes:

* sysfs_elem_attr->ops is added so that kernfs_ops can be accessed
  from sysfs_dirent.  kernfs_ops() helper is added to verify locking
  and access the field.

* SYSFS_FLAG_HAS_(SEQ_SHOW|MMAP) added.  sd->s_attr->ops is accessible
  only while holding active_ref and there are cases where we want to
  take different actions depending on which ops are implemented.
  These two flags cache whether the two ops are implemented for those.

* kernfs_file_*() no longer test sysfs type but chooses different
  behaviors depending on which methods in kernfs_ops are implemented.
  The conversions are trivial except for the open path.  As
  kernfs_file_open() now decides whether to allow read/write accesses
  depending on the kernfs_ops implemented, the presence of methods in
  kobjs and attribute_bin should be propagated to kernfs_ops.
  sysfs_add_file_mode_ns() is updated so that it propagates presence /
  absence of the callbacks through _empty, _ro, _wo, _rw kernfs_ops.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-29 17:35:05 -08:00
..
2013-08-14 13:55:15 +05:30
2013-07-30 11:53:12 -04: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-07-15 11:25:00 +09:30
2013-08-26 20:15:23 +09: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-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-29 17:35:05 -08:00
2013-11-15 09:32:23 +09:00
2013-08-28 21:35:14 -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
2013-09-03 16:40:32 -04:00
2013-10-17 00:36:06 +02:00
2013-07-03 16:08:05 -07:00
2013-09-10 18:56:32 -04:00
2013-09-12 15:38:02 -07:00
2013-08-05 10:52:36 -06: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