From: ebiederm@xmission.com (Eric W. Biederman)
To: "Américo Wang" <xiyou.wangcong@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@suse.de>,
"Tejun Heo \<tj\@kernel.org\> Neil Brown" <neilb@suse.de>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/4] sysfs: Only take active references on attributes.
Date: Mon, 15 Feb 2010 02:11:11 -0800 [thread overview]
Message-ID: <m1ocjqg668.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <20100215081527.GD12076@hack.private> ("Américo Wang"'s message of "Mon\, 15 Feb 2010 16\:15\:27 +0800")
Américo Wang <xiyou.wangcong@gmail.com> writes:
> On Mon, Feb 15, 2010 at 03:27:45PM +0800, Américo Wang wrote:
>>On Thu, Feb 11, 2010 at 03:20:00PM -0800, Eric W. Biederman wrote:
>>>
>>>If we exclude directories and symlinks from the set of sysfs
>>>dirents where we need active references we are left with
>>>sysfs attributes (binary or not).
>>>
>>>- Tweak sysfs_deactivate to only do something on attributes
>>>- Move lockdep initialization into sysfs_file_add_mode to
>>> limit it to just attributes.
>>
>>Why?
>>
>>If I read your patch correctly, s_active will be useless
>>for non-attributes sysfs entries? For sysfs dir, maybe,
>>since it can only be removed by sysfs_remove_dir(),
>>but not sure about sysfs symlinks...
Yes. s_active is effectively useless for non-attribute sysfs entries.
> For sysfs dir's, opening it will not get s_active,
> since it doesn't have .open member. But it does
> put s_active when removing it. This seems buggy?
s_active needs to be taken over the lifetime of every method. For
directories a file descriptor will pin the dirent which does have a
reference to the sysfs dirent, and that ensures the sysfs entry does
not disappear.
There is one common path for removing sysfs dirents and they all call
sysfs_deactivate. The job of sysfs_deactivate is to wait until there
are no methods actively running so their dirents can have any
non-generic state cleaned up.
Neither symlinks nor directories call sysfs_get/put_active, thus
sysfs_deactivate is effectively a noop for those dirents before my
patch. After my patch sysfs_deactivate is also a noop from a lockdep
perspective.
Eric
next prev parent reply other threads:[~2010-02-15 10:11 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-10 1:09 [PATCH] sysfs: differentiate between locking links and non-links Neil Brown
2010-02-10 1:21 ` David Rientjes
2010-02-10 1:56 ` Américo Wang
2010-02-10 3:05 ` David Rientjes
2010-02-10 3:14 ` Américo Wang
2010-02-10 3:19 ` David Rientjes
2010-02-10 3:33 ` Américo Wang
2010-02-10 2:08 ` Américo Wang
2010-02-10 2:19 ` Tejun Heo
2010-02-10 3:12 ` Américo Wang
2010-02-10 8:03 ` Eric W. Biederman
2010-02-10 10:39 ` Tejun Heo
2010-02-10 18:25 ` Eric W. Biederman
2010-02-10 23:05 ` Greg KH
2010-02-11 1:31 ` Eric W. Biederman
2010-02-11 2:10 ` Tejun Heo
2010-02-11 18:08 ` Eric W. Biederman
2010-02-12 0:59 ` Tejun Heo
2010-02-12 1:20 ` Eric W. Biederman
2010-02-12 1:20 ` Eric W. Biederman
2010-02-12 2:16 ` Tejun Heo
2010-02-11 23:13 ` [PATCH 0/4] Better sysfs lockdep Eric W. Biederman
2010-02-11 23:14 ` [PATCH 1/4] sysfs: Remove sysfs_get/put_active_two Eric W. Biederman
2010-02-11 23:20 ` [PATCH 2/4] sysfs: Only take active references on attributes Eric W. Biederman
2010-02-11 23:21 ` [PATCH 3/4] sysfs: Use one lockdep class per sysfs attribute Eric W. Biederman
2010-02-11 23:23 ` [PATCH 4/4] sysfs: Use sysfs_attr_init and sysfs_bin_attr_init on dynamic attributes Eric W. Biederman
2010-02-11 23:42 ` Greg KH
2010-02-12 12:47 ` [PATCH] sysfs: Document sysfs_attr_init and sysfs_bin_attr_init Eric W. Biederman
2010-02-12 21:41 ` [PATCH] sysfs: Use sysfs_attr_init and sysfs_bin_attr_init on module dynamic attributes Eric W. Biederman
2010-02-15 10:38 ` [PATCH 4/4] sysfs: Use sysfs_attr_init and sysfs_bin_attr_init on " Américo Wang
2010-02-15 12:53 ` Eric W. Biederman
2010-02-15 10:35 ` [PATCH 3/4] sysfs: Use one lockdep class per sysfs attribute Américo Wang
2010-02-15 7:27 ` [PATCH 2/4] sysfs: Only take active references on attributes Américo Wang
2010-02-15 8:15 ` Américo Wang
2010-02-15 8:31 ` Américo Wang
2010-02-15 10:11 ` Eric W. Biederman [this message]
2010-02-15 7:03 ` [PATCH 1/4] sysfs: Remove sysfs_get/put_active_two Américo Wang
2010-02-11 23:18 ` Eric W. Biederman
2010-02-11 23:17 ` [PATCH 0/4] Better sysfs lockdep Eric W. Biederman
2010-02-11 23:43 ` Greg KH
2010-02-10 23:54 ` [PATCH] sysfs: differentiate between locking links and non-links Tejun Heo
2010-02-11 0:38 ` Eric W. Biederman
2010-02-10 17:36 ` Eric W. Biederman
2010-02-10 17:55 ` Dmitry Torokhov
2010-02-10 23:06 ` Greg KH
2010-02-11 21:42 ` Eric W. Biederman
2010-02-11 22:32 ` Greg KH
2010-02-11 22:47 ` Eric W. Biederman
2010-02-17 22:38 ` Greg KH
2010-02-18 0:39 ` Neil Brown
2010-02-18 1:01 ` Eric W. Biederman
2010-02-18 1:12 ` 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=m1ocjqg668.fsf@fess.ebiederm.org \
--to=ebiederm@xmission.com \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=neilb@suse.de \
--cc=xiyou.wangcong@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.