From: Tejun Heo <htejun@gmail.com>
To: Satyam Sharma <satyam.sharma@gmail.com>
Cc: Gabriel C <nix.or.die@googlemail.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Christoph Lameter <clameter@sgi.com>,
gregkh@suse.de, miles.lane@gmail.com
Subject: Re: [PATCH] sysfs: kill an extra put in sysfs_create_link() failure path
Date: Thu, 19 Jul 2007 01:20:40 +0900 [thread overview]
Message-ID: <469E3DD8.80607@gmail.com> (raw)
In-Reply-To: <a781481a0707180830g44cdd38etb4a540afce218065@mail.gmail.com>
Satyam Sharma wrote:
>> On 7/18/07, Tejun Heo <htejun@gmail.com> wrote:
>> > Satyam Sharma wrote:
>> > > On 7/18/07, Tejun Heo <htejun@gmail.com> wrote:
>> > >> There is a subtle bug in sysfs_create_link() failure path. When
>> > >> symlink creation fails because there's already a node with the same
>> > >> name, the target sysfs_dirent is put twice - once by failure path of
>> > >> sysfs_create_link() and once more when the symlink is released.
>> > >
>> > > The "symlink" is released? But the creation of the symlink is
>> > > precisely what failed here ... did it not?
>> > >
>> > >> Fix it by making only the symlink node responsible for putting
>> > >> target_sd.
>> > >
>> > > And again ... the changelog sounds confusing indeed, perhaps I'm
>> > > not familiar enough with sysfs symlink-related terminology/semantics.
>> > > Care to elaborate?
>
> BTW, please do explain this one to me, if you can find the time :-)
A symlink node holds two sd's. Its parent as all other sd nodes and the
sd the symlink point to. When the symlink is released (its refcnt goes
to zero), it puts both. In this bug, the symlink is released twice -
once in the error handling path and one more time when symlink is released.
--
tejun
next prev parent reply other threads:[~2007-07-18 16:20 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-14 12:18 Oops while modprobing phy fixed module Gabriel C
2007-07-14 12:44 ` Gabriel C
2007-07-15 5:39 ` Satyam Sharma
2007-07-15 17:42 ` Gabriel C
2007-07-15 20:32 ` Gabriel C
2007-07-15 21:14 ` Satyam Sharma
2007-07-15 22:19 ` Gabriel C
2007-07-16 12:17 ` Gabriel C
2007-07-16 15:19 ` Satyam Sharma
2007-07-16 15:41 ` Gabriel C
2007-07-16 16:18 ` Gabriel C
2007-07-16 16:54 ` Gabriel C
2007-07-16 18:23 ` Tejun Heo
2007-07-16 18:32 ` Gabriel C
2007-07-16 19:11 ` Gabriel C
2007-07-16 19:13 ` Gabriel C
2007-07-18 5:51 ` Tejun Heo
2007-07-23 19:53 ` Christoph Lameter
2007-07-24 6:35 ` Tejun Heo
2007-07-18 7:14 ` [PATCH] sysfs: kill an extra put in sysfs_create_link() failure path Tejun Heo
2007-07-18 7:38 ` [PATCH] sysfs: cosmetic clean up on node creation failure paths Tejun Heo
2007-07-18 11:40 ` Cornelia Huck
2007-07-18 11:16 ` [PATCH] sysfs: kill an extra put in sysfs_create_link() failure path Cornelia Huck
2007-07-18 14:29 ` Miles Lane
2007-07-18 14:48 ` Satyam Sharma
2007-07-18 14:57 ` Tejun Heo
2007-07-18 15:16 ` Satyam Sharma
2007-07-18 15:30 ` Satyam Sharma
2007-07-18 15:53 ` Tejun Heo
2007-07-18 16:08 ` Satyam Sharma
2007-07-18 16:20 ` Tejun Heo [this message]
2007-07-18 15:43 ` Tejun Heo
2007-07-18 16:06 ` Satyam Sharma
2007-07-18 16:30 ` Tejun Heo
2007-07-18 16:36 ` Satyam Sharma
2007-07-18 16:41 ` Tejun Heo
2007-07-18 16:49 ` Satyam Sharma
2007-07-18 16:59 ` Miles Lane
2007-07-23 19:52 ` Oops while modprobing phy fixed module Christoph Lameter
2007-07-16 17:43 ` Vitaly Bordug
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=469E3DD8.80607@gmail.com \
--to=htejun@gmail.com \
--cc=clameter@sgi.com \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=miles.lane@gmail.com \
--cc=nix.or.die@googlemail.com \
--cc=satyam.sharma@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox