public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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


  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