From: Boaz Harrosh <bharrosh@panasas.com>
To: Greg KH <greg@kroah.com>
Cc: Vladislav Bolkhovitin <vst@vlnb.net>,
linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org,
scst-devel <scst-devel@lists.sourceforge.net>,
James Bottomley <James.Bottomley@HansenPartnership.com>,
Andrew Morton <akpm@linux-foundation.org>,
FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>,
Mike Christie <michaelc@cs.wisc.edu>,
Vu Pham <vuhuong@mellanox.com>,
Bart Van Assche <bart.vanassche@gmail.com>,
James Smart <James.Smart@Emulex.Com>,
Joe Eykholt <jeykholt@cisco.com>, Andy Yan <ayan@marvell.com>,
Chetan Loke <generationgnu@yahoo.com>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Hannes Reinecke <hare@suse.de>,
Richard Sharpe <realrichardsharpe@gmail.com>,
Daniel Henrique Debonzi <debonzi@linux.vnet.ibm.com>
Subject: Re: [PATCH 8/19]: SCST SYSFS interface implementation
Date: Thu, 11 Nov 2010 16:05:43 +0200 [thread overview]
Message-ID: <4CDBF837.7050608@panasas.com> (raw)
In-Reply-To: <20101111120453.GA672@kroah.com>
On 11/11/2010 02:04 PM, Greg KH wrote:
> On Thu, Nov 11, 2010 at 11:59:28AM +0200, Boaz Harrosh wrote:
>> 4. Exactly Like 3 but without the extra kref member
>> Only x_put() changes and x_kref_release() now receives
>> an x_object
>>
>> int x_put(struct object_x *x)
>> {
>> if (kobject_put(&x->kobj) == 1)
>> // Like above [3] x_kref_release()
>> x_kref_release(x);
>> }
>
> This is racy, please never do this.
>
The last ref belongs to the core code. 1 means there are no
more external clients on the object. So it can not race with
decrements. But I guess there is a possibility that it can
race with new increments. If it is the case that new increments
can only come from, say, sysfs access, then if we call the
x_put() == 1 after we are unregistered from sysfs and no new
users are allowed then the counter can only go down and we
have the last reference. No?
Like I said option 4 is delicate it must be done carefully.
> thanks,
>
> greg k-h
Thanks
Boaz
next prev parent reply other threads:[~2010-11-11 14:05 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-01 21:34 [PATCHv4 0/19]: New SCSI target framework (SCST) with dev handlers and 2 target drivers Vladislav Bolkhovitin
2010-10-01 21:36 ` [PATCH 1/19]: Integration of SCST into the Linux kernel tree Vladislav Bolkhovitin
2010-10-01 21:36 ` [PATCH 2/19]: SCST core's Makefile and Kconfig Vladislav Bolkhovitin
2010-10-01 21:38 ` [PATCH 3/19]: SCST public headers Vladislav Bolkhovitin
2010-10-01 21:39 ` [PATCH 4/19]: SCST main management files and private headers Vladislav Bolkhovitin
2010-10-01 21:42 ` [PATCH 5/19]: SCST implementation of the SCSI target state machine Vladislav Bolkhovitin
2010-10-01 21:43 ` [PATCH 6/19]: SCST internal library functions Vladislav Bolkhovitin
2010-10-01 21:44 ` [PATCH 7/19]: SCST Persistent Reservations implementation Vladislav Bolkhovitin
2010-10-01 21:46 ` [PATCH 8/19]: SCST SYSFS interface implementation Vladislav Bolkhovitin
2010-10-09 21:20 ` Greg KH
2010-10-11 19:29 ` Vladislav Bolkhovitin
2010-10-11 21:32 ` Greg KH
2010-10-12 18:53 ` Vladislav Bolkhovitin
2010-10-12 19:03 ` Greg KH
2010-10-14 19:48 ` Vladislav Bolkhovitin
2010-10-14 20:04 ` Greg KH
2010-10-22 17:30 ` Vladislav Bolkhovitin
2010-10-22 17:56 ` Greg KH
2010-10-22 18:40 ` Vladislav Bolkhovitin
2010-10-22 18:54 ` Greg KH
2010-11-08 19:58 ` Vladislav Bolkhovitin
2010-11-09 0:28 ` Greg KH
2010-11-09 20:06 ` Vladislav Bolkhovitin
2010-11-10 9:58 ` Boaz Harrosh
2010-11-10 20:19 ` Vladislav Bolkhovitin
2010-11-10 20:29 ` Joe Eykholt
2010-11-10 20:38 ` Vladislav Bolkhovitin
2010-11-10 20:42 ` Joe Eykholt
2010-11-11 9:59 ` Boaz Harrosh
2010-11-11 12:04 ` Greg KH
2010-11-11 14:05 ` Boaz Harrosh [this message]
2010-11-11 14:16 ` Greg KH
2010-11-11 14:19 ` Boaz Harrosh
2010-11-11 20:50 ` Vladislav Bolkhovitin
2010-11-12 1:23 ` Dmitry Torokhov
2010-11-12 12:09 ` Bart Van Assche
2010-11-12 12:09 ` Bart Van Assche
2010-11-12 18:44 ` Dmitry Torokhov
2010-11-13 10:52 ` Bart Van Assche
2010-11-13 10:52 ` Bart Van Assche
2010-11-13 17:20 ` Vladislav Bolkhovitin
2010-11-13 23:59 ` Greg KH
2010-11-15 6:59 ` Dmitry Torokhov
2010-11-15 17:53 ` Bart Van Assche
2010-11-15 20:36 ` Vladislav Bolkhovitin
2010-11-15 9:46 ` Boaz Harrosh
2010-11-15 16:16 ` Greg KH
2010-11-15 17:19 ` Boaz Harrosh
2010-11-15 17:49 ` Bart Van Assche
2010-11-15 20:19 ` Nicholas A. Bellinger
2010-11-16 13:12 ` Vladislav Bolkhovitin
2010-11-16 11:59 ` [Scst-devel] " Richard Williams
2010-11-16 13:17 ` Vladislav Bolkhovitin
2010-11-18 21:02 ` Vladislav Bolkhovitin
2010-11-18 21:46 ` Greg KH
2010-11-19 18:00 ` Vladislav Bolkhovitin
2010-11-19 20:22 ` Dmitry Torokhov
2010-11-19 20:50 ` Vladislav Bolkhovitin
2010-11-19 21:16 ` Greg KH
2010-11-24 20:35 ` Vladislav Bolkhovitin
2010-11-19 21:19 ` Greg KH
2010-12-10 12:06 ` Bart Van Assche
2010-12-10 19:36 ` Greg KH
2010-12-14 14:10 ` Bart Van Assche
2010-11-19 18:01 ` Bart Van Assche
2010-11-19 18:01 ` Bart Van Assche
2010-11-15 20:39 ` Vladislav Bolkhovitin
2010-11-15 20:39 ` Vladislav Bolkhovitin
2010-11-15 17:45 ` Bart Van Assche
2010-11-15 18:44 ` Greg KH
2010-11-15 20:39 ` Vladislav Bolkhovitin
2010-11-15 22:13 ` Greg KH
2010-11-16 5:04 ` Joe Eykholt
2010-11-16 6:03 ` Nicholas A. Bellinger
2010-11-16 8:49 ` Florian Mickler
2010-11-16 13:18 ` Vladislav Bolkhovitin
2010-11-16 7:15 ` Bart Van Assche
2010-11-16 13:19 ` Vladislav Bolkhovitin
2010-11-15 20:36 ` Vladislav Bolkhovitin
2010-11-15 7:04 ` Dmitry Torokhov
2010-11-15 20:37 ` Vladislav Bolkhovitin
2010-11-15 21:14 ` Dmitry Torokhov
2010-11-16 13:13 ` Vladislav Bolkhovitin
2010-10-01 21:46 ` [PATCH 9/19]: SCST debugging support routines Vladislav Bolkhovitin
2010-10-01 21:48 ` [PATCH 10/19]: SCST SGV cache Vladislav Bolkhovitin
2010-10-01 21:48 ` [PATCH 11/19]: SCST core's docs Vladislav Bolkhovitin
2010-10-01 21:48 ` Vladislav Bolkhovitin
2010-10-01 21:49 ` [PATCH 12/19]: SCST dev handlers' Makefile Vladislav Bolkhovitin
2010-10-01 21:50 ` [PATCH 13/19]: SCST vdisk dev handler Vladislav Bolkhovitin
2010-10-01 21:51 ` [PATCH 14/19]: SCST pass-through dev handlers Vladislav Bolkhovitin
2010-10-01 21:53 ` [PATCH 15/19]: Implementation of blk_rq_map_kern_sg() Vladislav Bolkhovitin
2010-10-01 21:57 ` [PATCH 16/19]: scst_local target driver Vladislav Bolkhovitin
2010-10-01 21:58 ` [PATCH 17/19]: SCST InfiniBand SRP " Vladislav Bolkhovitin
2010-10-01 22:04 ` [PATCH 18/19]: ibmvstgt: Port from tgt to SCST Vladislav Bolkhovitin
2010-10-01 22:05 ` [PATCH 19/19]: tgt: Removal Vladislav Bolkhovitin
2010-10-02 7:40 ` [PATCHv4 0/19]: New SCSI target framework (SCST) with dev handlers and 2 target drivers Bart Van Assche
2010-10-02 7:40 ` Bart Van Assche
2010-10-06 20:21 ` [Scst-devel] " Steve Modica
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=4CDBF837.7050608@panasas.com \
--to=bharrosh@panasas.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=James.Smart@Emulex.Com \
--cc=akpm@linux-foundation.org \
--cc=ayan@marvell.com \
--cc=bart.vanassche@gmail.com \
--cc=debonzi@linux.vnet.ibm.com \
--cc=dmitry.torokhov@gmail.com \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=generationgnu@yahoo.com \
--cc=greg@kroah.com \
--cc=hare@suse.de \
--cc=jeykholt@cisco.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=michaelc@cs.wisc.edu \
--cc=realrichardsharpe@gmail.com \
--cc=scst-devel@lists.sourceforge.net \
--cc=vst@vlnb.net \
--cc=vuhuong@mellanox.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.