From: James Bottomley <James.Bottomley@steeleye.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: Mike Anderson <andmike@us.ibm.com>,
SCSI Mailing List <linux-scsi@vger.kernel.org>,
Alan Stern <stern@rowland.harvard.edu>
Subject: Re: [PATCH] make the SCSI mid-layer obey the device online flag
Date: 06 Jun 2003 11:19:02 -0400 [thread overview]
Message-ID: <1054912742.1778.25.camel@mulgrave> (raw)
In-Reply-To: <20030606073603.A13259@infradead.org>
On Fri, 2003-06-06 at 02:36, Christoph Hellwig wrote:
> We need a way to disable _all_ I/O to a device due to the way the driver
> model works. The driver model ->remove always is a surprise removal,
> so the underlying PCI (or whatever) device for a scsi host can go away
> anytime. Because of that we need to make damn sure no call to
> ->queuecommand will happen after scsi_remove_host is called. Whether
> this is implemented with the same mechanisms as the current sdev->online
> is another question.
I'm not entirely convinced. Sure, the device has gone away, but the
driver is still there. If you rip out a real SCSI disc, all subsequent
commands will error with DID_NO_CONNECT, I don't see why this should be
so hard for other types of storage do follow.
The question is whether we should allow (and any LLD actually wants) the
ability to tell the mid-layer that it will accept no further commands at
all.
At the moment, I think we can handle both ejection scenarios adequately
without forbidding all commands to the LLD:
Surprise ejection:
driver starts returning DID_NO_CONNECT to commands
possibly hotplug notify of surprise ejection
device->online to be reset
command queue drains
command queue drops to zero, ->remove can be called and everything
cleaned up from user level (including remove-single-device)
Nice ejection:
hotplug notify of ejection request
eject script cleans up, unmounts, possibly resets online
command queue drains
command queue drops to zero, ->remove can be called and everything
cleaned up from user level (including remove-single-device)
ejection may now proceed
For the remove_host scenario, it would be convenient just to do
nice/surprise ejections on all the devices (from user level) and then do
the clean up when the hosts device count falls to zero. That may imply
some type of host->offline flag which disallows the addition of new scsi
devices to the host.
James
next prev parent reply other threads:[~2003-06-06 15:06 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-06-04 16:01 [PATCH] make the SCSI mid-layer obey the device online flag James Bottomley
2003-06-04 16:51 ` Mike Anderson
2003-06-04 19:14 ` James Bottomley
2003-06-05 0:34 ` Patrick Mansfield
2003-06-05 12:59 ` James Bottomley
2003-06-05 13:41 ` Alan Stern
2003-06-06 6:36 ` Christoph Hellwig
2003-06-06 15:19 ` James Bottomley [this message]
2003-06-06 15:51 ` Oliver Neukum
2003-06-06 16:02 ` Luben Tuikov
2003-06-06 15:28 ` Luben Tuikov
2003-06-06 15:39 ` James Bottomley
2003-06-06 15:52 ` Luben Tuikov
2003-06-06 16:04 ` James Bottomley
2003-06-06 20:51 ` Christoph Hellwig
2003-06-06 23:27 ` Luben Tuikov
2003-06-06 23:43 ` James Bottomley
2003-06-07 5:20 ` Luben Tuikov
2003-06-06 20:23 ` Mike Anderson
2003-06-06 20:52 ` Christoph Hellwig
2003-06-10 0:00 ` Mike Anderson
2003-06-06 20:49 ` Christoph Hellwig
2003-06-06 23:21 ` Luben Tuikov
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=1054912742.1778.25.camel@mulgrave \
--to=james.bottomley@steeleye.com \
--cc=andmike@us.ibm.com \
--cc=hch@infradead.org \
--cc=linux-scsi@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