linux/fs/sysfs
Tejun Heo 517e64f578 sysfs, kernfs: revamp sysfs_dirent active_ref lockdep annotation
Currently, sysfs_dirent active_ref lockdep annotation uses
attribute->[s]key as the lockdep key, which forces
kernfs_create_file_ns() to assume that sysfs_dirent->priv is pointing
to a struct attribute which may not be true for non-sysfs users.  This
patch restructures the lockdep annotation such that

* kernfs_ops contains lockdep_key which is used by default for files
  created kernfs_create_file_ns().

* kernfs_create_file_ns_key() is introduced which takes an extra @key
  argument.  The created file will use the specified key for
  active_ref lockdep annotation.  If NULL is specified, lockdep for
  the file is disabled.

* sysfs_add_file_mode_ns() is updated to use
  kernfs_create_file_ns_key() with the appropriate key from the
  attribute or NULL if ignore_lockdep is set.

This makes the lockdep annotation properly contained in kernfs while
allowing sysfs to cleanly keep its current behavior.  This patch
doesn't introduce any behavior differences.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-29 17:48:15 -08:00
..
Kconfig kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT 2011-01-20 17:02:05 -08:00
Makefile sysfs: merge regular and bin file handling 2013-10-05 17:27:40 -07:00
dir.c sysfs, kernfs: revamp sysfs_dirent active_ref lockdep annotation 2013-11-29 17:48:15 -08:00
file.c sysfs, kernfs: revamp sysfs_dirent active_ref lockdep annotation 2013-11-29 17:48:15 -08:00
group.c sysfs, kernfs: remove SYSFS_KOBJ_BIN_ATTR 2013-11-29 17:41:35 -08:00
inode.c sysfs, kernfs: remove SYSFS_KOBJ_BIN_ATTR 2013-11-29 17:41:35 -08:00
mount.c sysfs: drop kobj_ns_type handling, take #2 2013-11-27 13:01:03 -08:00
symlink.c sysfs, kernfs: remove sysfs_add_one() 2013-11-29 17:48:14 -08:00
sysfs.h sysfs, kernfs: revamp sysfs_dirent active_ref lockdep annotation 2013-11-29 17:48:15 -08:00