All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vaughan Cao <vaughan.cao@oracle.com>
To: dgilbert@interlog.com, Bart Van Assche <bvanassche@acm.org>,
	SCSI development list <linux-scsi@vger.kernel.org>,
	Madper Xie <cxie@redhat.com>,
	James Bottomley <james.bottomley@hansenpartnership.com>
Cc: linux-kernel <linux-kernel@vger.kernel.org>, vaughan.cao@oracle.com
Subject: Re: [PATCH] [SCSI] sg: late O_EXCL fix for lk 3.12-rc
Date: Mon, 21 Oct 2013 18:35:39 +0800	[thread overview]
Message-ID: <5265037B.4050108@oracle.com> (raw)
In-Reply-To: <526460A0.3000807@interlog.com>


On 2013年10月21日 07:00, Douglas Gilbert wrote:
> On 13-10-20 01:31 PM, Bart Van Assche wrote:
>> On 10/20/13 18:09, Douglas Gilbert wrote:
>>> Given that lk 3.12.0 release is not far away, the safest path
>>> may still be to revert Vaughan Cao's patch. I'll leave that
>>> decision to the maintainers.
>>
>> Hello Doug,
>>
>> Thanks for looking into this. But I would appreciate it if you could 
>> address the
>> whitespace errors reported by checkpatch:
>>
>> ERROR: space prohibited after that '!' (ctx:BxW)
>> #24: FILE: drivers/scsi/sg.c:241:
>> + (excl_case ? (! sdp->exclude) : sfds_list_empty(sdp))));
>> ^
>>
>> ERROR: space prohibited after that '!' (ctx:BxW)
>> #55: FILE: drivers/scsi/sg.c:289:
>> + if (! alone) {
>> ^
>>
>> ERROR: code indent should use tabs where possible
>> #59: FILE: drivers/scsi/sg.c:292:
>> + }$
>>
>> WARNING: please, no spaces at the start of a line
>> #59: FILE: drivers/scsi/sg.c:292:
>> + }$
>>
>> ERROR: space prohibited after that '!' (ctx:BxW)
>> #73: FILE: drivers/scsi/sg.c:301:
>> + while (! alone) {
>> ^
>>
>> WARNING: suspect code indent for conditional statements (8, 12)
>> #144: FILE: drivers/scsi/sg.c:375:
>> + if (excl || sfds_list_empty(sdp))
>> + wake_up_interruptible(&sdp->open_wait);
>>
>
> I'd prefer people to test the patch or find logical flaws.
>
> Doug Gilbert
>
Hi Doug,

Will the lines below conflict with the meaning of NONBLOCK?
 >+ down(&sdp->or_sem);
 >+ alone = sfds_list_empty(sdp);
 > if (!((flags & O_NONBLOCK) ||
 > scsi_block_when_processing_errors(sdp->device))) {

Assume one thread holds the or_sem and waiting in 
scsi_block_when_processing_errors for the underlying scsi device to 
complete error recovery,
another thread with O_NONBLOCK call sg_open().

I'm also curious why we can skip checking _processing_errors() when 
called with O_NONBLOCK?...Though it has been there from the very beginning.
In other words, since scsi device may go into a error recovery state at 
random time, why we only check here?

Thanks,
Vaughan

  reply	other threads:[~2013-10-21 10:35 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-20 16:09 [PATCH] [SCSI] sg: late O_EXCL fix for lk 3.12-rc Douglas Gilbert
2013-10-20 17:31 ` Bart Van Assche
2013-10-20 23:00   ` Douglas Gilbert
2013-10-21 10:35     ` Vaughan Cao [this message]
2013-10-21 16:26       ` Douglas Gilbert

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=5265037B.4050108@oracle.com \
    --to=vaughan.cao@oracle.com \
    --cc=bvanassche@acm.org \
    --cc=cxie@redhat.com \
    --cc=dgilbert@interlog.com \
    --cc=james.bottomley@hansenpartnership.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    /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.