From: Ben Collins <ben.collins@ubuntu.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Jens Axboe <axboe@suse.de>, Ben Collins <bcollins@ubuntu.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH rc6] block: Fix CDROMEJECT to work in more cases
Date: Tue, 20 Dec 2005 15:38:50 -0500 [thread overview]
Message-ID: <1135111130.16754.23.camel@localhost.localdomain> (raw)
In-Reply-To: <Pine.LNX.4.64.0512201005370.4827@g5.osdl.org>
On Tue, 2005-12-20 at 10:08 -0800, Linus Torvalds wrote:
>
> On Tue, 20 Dec 2005, Jens Axboe wrote:
> >
> > WRITEs cannot have length 0, and READs cannot as well. Since it's just
> > one bit for direction, those are the rules.
>
> Jens, your logic doesn't make sense.
>
> There clearly _are_ commands with a 0 data-length.
>
> And commands _have_ to be either READ or WRITE. We don't have a choice.
> ll_rw_block: blk_get_request() even has a BIG_ON() that enforces that.
>
> So claiming that reads and writes cannot have zere data-length is INSANE.
>
> So reads and writes HAVE to accept a zero data length. End of story. If
> there is some path in the SCSI layer that refuses it, that part must be
> fixed, or you have to add a new "NONE" (and perhaps "BOTH") direction.
I think most of the problem is that once it got down to the scsi layer,
there were some bugs with data direction, and it confused things like
usb-storage and sbp2 on firewire.
Those bugs were fixed. Note, I did not test the ALLOW_MEDIUM_REMOVAL fix
with WRITE commands after going to -rc6 (I used -rc5 for testing), so
those direction fixes may actually make ALLOW_MEDIUM_REMOVAL work.
However, I don't see the issue with using READ. We know this isn't a
write operation, we are sending a single command with no data. I know
you say reads are precious, but 3 requests for something that isn't
going to happen very often doesn't seem that bad.
As for the 0x01, I don't know. The eject -s code does the exact same
thing (AMR, SS:0x01, SS:0x02), so I copied the same mechanism because it
is known to work.
--
Ben Collins <ben.collins@ubuntu.com>
Developer
Ubuntu Linux
next prev parent reply other threads:[~2005-12-20 20:39 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-12-19 19:50 [PATCH rc6] block: Fix CDROMEJECT to work in more cases Ben Collins
2005-12-20 17:34 ` Linus Torvalds
2005-12-20 17:49 ` Jens Axboe
2005-12-20 18:08 ` Linus Torvalds
2005-12-20 18:38 ` Jens Axboe
2005-12-20 18:53 ` Linus Torvalds
2005-12-20 19:08 ` Jens Axboe
2005-12-20 20:38 ` Ben Collins [this message]
2005-12-20 20:53 ` Jens Axboe
2005-12-20 21:46 ` Ben Collins
2005-12-21 7:04 ` Jens Axboe
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=1135111130.16754.23.camel@localhost.localdomain \
--to=ben.collins@ubuntu.com \
--cc=axboe@suse.de \
--cc=bcollins@ubuntu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox