From: Tejun Heo <htejun@gmail.com>
To: ebiederm@xmission.com, cornelia.huck@de.ibm.com, greg@kroah.com,
stern@rowland.harvard.edu, kay.sievers@vrfy.org,
linux-kernel@vger.kernel.org, htejun@gmail.com
Subject: [PATCHSET 3/4] sysfs: divorce sysfs from kobject and driver model
Date: Thu, 20 Sep 2007 17:05:39 +0900 [thread overview]
Message-ID: <11902755392688-git-send-email-htejun@gmail.com> (raw)
In-Reply-To:
Subject: [PATCHSET 3/4] sysfs: divorce sysfs from kobject and driver model
Hello, all.
This is the third patchset of four sysfs update patchset series[1] and
to be applied on top of the second patchset[2].
Currently, sysfs interface is based on kobj. This made more sense
before because lifetime of sysfs nodes were tracked using kobj
reference counts. However, this is no longer true. sysfs nodes are
represented with a sysfs_dirent and external reference is severed
immediately on node removal. The internal implementation reflects
that too and mostly handles sysfs_dirents.
This patchset divorces sysfs from kobject and driver model by
implementing sysfs_dirent based interface. This has the following
advantages.
* sysfs becomes a separate module and driver model becomes a user of
sysfs. Those two are not entangled anymore. Things are easier to
understand and test this way.
* Non-driver model users of sysfs (modules, blkdev, etc...) don't have
to jump through hoops to use sysfs. kobj based interface requires
attribute wrapping and is awkward to use directly. Also, the user
is required to create a dummy kobj which doesn't serve much purpose
than being a token for sysfs reference. New sysfs-dirent based
interface is straight forward proc-fs like interface and should be
easier and more intuitive for those users.
* As kobj didn't really represent what actually populate sysfs,
interface was a bit messy - there was no way to reference a leaf
node other than using its textual name and directories which aren't
associated with a kobj needed separate interface, which in turn,
made adding new features difficult. New interface is leaner and
more flexible.
kobject based interface is reimplemented as wrapper functions on top
of the new sysfs_dirent based interface. Long term plan is to update
kobject based users one-by-one and deprecate kobject based interface.
This change doesn't intend to replace driver-model based interface or
encourage random additions to sysfs hierarchy. Driver model internal
may change but interfaces to drivers and userland will stay the same.
The goals of this patchset are to 1. clean up sysfs and driver model
internals and 2. make lives easier for sysfs users which aren't
drivers or are having difficulties integrating into the current driver
model.
This patchset contains the following 22 patches.
0001-sysfs-make-sysfs_root-a-pointer.patch
0002-sysfs-separate-out-sysfs-kobject.h-and-fs-sysfs-kob.patch
0003-sysfs-make-sysfs_new_dirent-normalize-mode-and-d.patch
0004-sysfs-make-SYSFS_COPY_NAME-a-flag.patch
0005-sysfs-implement-sysfs_find_child.patch
0006-sysfs-restructure-addrm-helpers.patch
0007-sysfs-implement-sysfs_dirent-based-remove-interface.patch
0008-sysfs-implement-sysfs_dirent-based-directory-interf.patch
0009-sysfs-rename-internal-function-sysfs_add_file.patch
0010-sysfs-drop-kobj-and-attr-from-file-related-symbols.patch
0011-sysfs-implement-sysfs_dirent-based-file-interface.patch
0012-sysfs-drop-kobj-and-attr-from-bin-related-symbols.patch
0013-sysfs-implement-sysfs_dirent-based-bin-interface.patch
0014-sysfs-s-symlink-link-g.patch
0015-sysfs-implement-sysfs_dirent-based-link-interface.patch
0016-sysfs-convert-group-implementation-to-use-sd-based.patch
0017-sysfs-s-sysfs_rename_mutex-sysfs_op_mutex-and-prot.patch
0018-kobject-implement-__kobject_set_name.patch
0019-sysfs-implement-sysfs_dirent-based-rename-sysfs_r.patch
0020-sysfs-kill-now-unused-__sysfs_add_file.patch
0021-sysfs-kill-sysfs_hash_and_remove.patch
0022-sysfs-move-sysfs_assoc_lock-into-fs-sysfs-kobject.c.patch
0001-0003 are preparations. 0004-0006 implement new features needed
for sysfs_dirent interface. 0007-0016 implement sysfs_dirent based
add, remove interfaces and reimplement kobj-based ones in terms of
them.
0017-0018 preps for sysfs_dirent based rename interface.
sysfs_rename_mutex is renamed to sysfs_op_mutex and protects all tree
modifying operations. 0019 implements sysfs_dirent based rename
interface. This is one mighty rename interface which can do both
moving and renaming. The implementation is over-done to later
accomodate symlink auto renaming and hopefully help shadow renaming.
0020-0022 cleans up now unused stuff.
Thanks.
--
tejun
[1] http://thread.gmane.org/gmane.linux.kernel/582105
[2] http://thread.gmane.org/gmane.linux.kernel/582130
next reply other threads:[~2007-09-20 8:06 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-20 8:05 Tejun Heo [this message]
2007-09-20 8:05 ` [PATCH 05/22] sysfs: implement sysfs_find_child() Tejun Heo
2007-09-20 8:05 ` [PATCH 03/22] sysfs: make sysfs_new_dirent() normalize @mode and determine file type Tejun Heo
2007-09-20 8:05 ` [PATCH 02/22] sysfs: separate out sysfs-kobject.h and fs/sysfs/kobject.c Tejun Heo
2007-09-20 8:05 ` [PATCH 01/22] sysfs: make sysfs_root a pointer Tejun Heo
2007-09-20 8:05 ` [PATCH 04/22] sysfs: make SYSFS_COPY_NAME a flag Tejun Heo
2007-09-20 8:05 ` [PATCH 06/22] sysfs: restructure addrm helpers Tejun Heo
2007-09-20 8:05 ` [PATCH 11/22] sysfs: implement sysfs_dirent based file interface Tejun Heo
2007-09-20 8:05 ` [PATCH 12/22] sysfs: drop kobj and attr from bin related symbols Tejun Heo
2007-09-20 8:05 ` [PATCH 07/22] sysfs: implement sysfs_dirent based remove interface sysfs_remove() Tejun Heo
2007-09-20 8:05 ` [PATCH 09/22] sysfs: rename internal function sysfs_add_file() Tejun Heo
2007-09-20 8:05 ` [PATCH 14/22] sysfs: s/symlink/link/g Tejun Heo
2007-09-20 8:05 ` [PATCH 13/22] sysfs: implement sysfs_dirent based bin interface Tejun Heo
2007-09-20 8:05 ` [PATCH 10/22] sysfs: drop kobj and attr from file related symbols Tejun Heo
2007-09-20 8:05 ` [PATCH 08/22] sysfs: implement sysfs_dirent based directory interface Tejun Heo
2007-09-20 8:05 ` [PATCH 17/22] sysfs: s/sysfs_rename_mutex/sysfs_op_mutex/ and protect all tree modifying ops Tejun Heo
2007-09-20 8:05 ` [PATCH 15/22] sysfs: implement sysfs_dirent based link interface Tejun Heo
2007-09-20 8:05 ` [PATCH 16/22] sysfs: convert group implementation to use sd-based interface Tejun Heo
2007-09-20 8:05 ` [PATCH 18/22] kobject: implement __kobject_set_name() Tejun Heo
2007-09-20 8:05 ` [PATCH 20/22] sysfs: kill now unused __sysfs_add_file() Tejun Heo
2007-09-20 8:05 ` [PATCH 22/22] sysfs: move sysfs_assoc_lock into fs/sysfs/kobject.c and make it static Tejun Heo
2007-09-20 8:05 ` [PATCH 19/22] sysfs: implement sysfs_dirent based rename - sysfs_rename() Tejun Heo
2007-09-20 8:05 ` [PATCH 21/22] sysfs: kill sysfs_hash_and_remove() Tejun Heo
2007-09-25 22:17 ` [PATCHSET 3/4] sysfs: divorce sysfs from kobject and driver model Greg KH
2007-09-27 11:35 ` Tejun Heo
2007-09-27 19:25 ` Eric W. Biederman
2007-09-29 22:06 ` Tejun Heo
2007-10-05 6:23 ` Greg KH
2007-10-05 12:12 ` Eric W. Biederman
2007-10-05 13:03 ` [Devel] " Kirill Korotaev
2007-10-05 13:24 ` Eric W. Biederman
2007-10-09 22:51 ` Greg KH
2007-10-10 13:16 ` Eric W. Biederman
2007-10-10 20:44 ` Greg KH
2007-10-10 21:16 ` Eric W. Biederman
2007-10-16 22:18 ` sukadev
2007-10-16 23:54 ` Eric W. Biederman
2007-10-05 12:44 ` Eric W. Biederman
2007-10-09 22:53 ` Greg KH
2007-10-05 6:18 ` Greg KH
2007-10-05 8:00 ` Tejun Heo
2007-10-09 9:29 ` Cornelia Huck
2007-10-09 22:26 ` Greg KH
2007-10-09 23:20 ` Roland Dreier
2007-10-09 23:28 ` Greg KH
2007-10-10 9:11 ` Cornelia Huck
2007-10-10 9:05 ` Cornelia Huck
2007-10-09 22:48 ` Greg KH
2007-10-10 15:38 ` Alan Stern
2007-10-10 16:16 ` Cornelia Huck
2007-10-10 17:24 ` Martin Bligh
2007-10-10 17:30 ` Greg KH
2007-10-10 18:26 ` Martin Bligh
2007-10-10 18:44 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=11902755392688-git-send-email-htejun@gmail.com \
--to=htejun@gmail.com \
--cc=cornelia.huck@de.ibm.com \
--cc=ebiederm@xmission.com \
--cc=greg@kroah.com \
--cc=kay.sievers@vrfy.org \
--cc=linux-kernel@vger.kernel.org \
--cc=stern@rowland.harvard.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox