linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: john stultz <johnstul@us.ibm.com>
To: Ben Collins <ben.collins@ubuntu.com>
Cc: Jens Axboe <axboe@suse.de>, lkml <linux-kernel@vger.kernel.org>,
	greg@kroah.com
Subject: Re: [PATCH] block: Better CDROMEJECT
Date: Tue, 20 Dec 2005 12:41:39 -0800	[thread overview]
Message-ID: <1135111300.27117.41.camel@cog.beaverton.ibm.com> (raw)
In-Reply-To: <1135087637.16754.12.camel@localhost.localdomain>

On Tue, 2005-12-20 at 09:07 -0500, Ben Collins wrote:
> On Tue, 2005-12-20 at 14:39 +0100, Jens Axboe wrote:
> > > Should be an easy check to add. In fact, I'll resend both patches with
> > > that in place if you want.
> > 
> > There's still the quirky problem of forcing a locked tray out. In some
> > cases this is what you want, if things get stuck for some reason or
> > another. But usually the tray is locked for a good reason, because there
> > are active users of the device.
> > 
> > Say two processes has the cdrom open, one of them doing io (maybe even
> > writing!), the other could do a CDROMEJECT now and force the ejection of
> > a busy drive.
> 
> But that's possible now with "eject -s" as long as you have write access
> to it. Most users are using "eject -s" anyway.
> 
> You can't stop this from happening. However, the fact is that a lot of
> devices (iPod's being the most popular) require this to work.

I'm a little confused. Eject has a number of different ways it
interfaces with the kernel (scsi, cdrom, floppy, tape), which I assume
map to different ioctl commands. In the case I'm familiar with (my usb
ipod, and my firewire disk), the scsi method (via eject -s) is used
which sends a ALLOW_MEDIUM_REMOVAL.

Now I know without passing a specific method, eject will try different
methods until one works, but it seems that the patch below is overriding
the CDROMEJECT ioctl so that it then sends an ALLOW_MEDIUM_REMOVAL as
well as the normal GPCMD_START_STOP_UNIT.

Again, I don't know about the hardware bits, do you want
ALLOW_MEDIUM_REMOVAL to be sent to cdroms when the "eject -r" option is
used, or just for "eject -s"?

Or maybe your patch is addressing more then just my issue w/ USB and
Firewire devices and that is the disconnect on my side?

> Here's the patch. Currently it will not even try the
> ALLOW_MEDIUM_REMOVAL unless they have write access (to avoid returning
> an uneeded error for people using eject -r that isn't patched to open
> the device O_RDRW). However, I still changed the __blk_send_generic()
> function to use verify_command().

I'll play with your patch tonight and let you know how it goes.

Although from just looking at it, don't you still need to add
ALLOW_MEDIUM_REMOVAL in the verify_command() list for this to work?

Alternatively, would just the "safe_for_write(ALLOW_MEDIUM_REMOVAL);" in
verify_command along with the eject-opens-RW fix have almost the same
effect?

thanks
-john


  parent reply	other threads:[~2005-12-20 20:41 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-12-20  2:51 [RFC] Let non-root users eject their ipods? john stultz
2005-12-20  3:51 ` Wakko Warner
2005-12-20  3:49   ` john stultz
2005-12-20  5:05     ` Matthew Dharm
2005-12-24 21:16   ` Jan Engelhardt
2005-12-20  5:18 ` Willy Tarreau
2005-12-20  6:06   ` Coywolf Qi Hunt
2005-12-20  8:56     ` Sander
2005-12-20  9:31       ` Coywolf Qi Hunt
2005-12-20  9:38         ` Sander
2005-12-20 16:39           ` Bill Davidsen
2005-12-20 11:10         ` Nikita Danilov
2005-12-20  7:46 ` Jens Axboe
2005-12-20 12:41   ` Ben Collins
2005-12-20 13:28     ` Jens Axboe
2005-12-20 13:32       ` Ben Collins
2005-12-20 13:39         ` Jens Axboe
2005-12-20 14:07           ` [PATCH] block: Better CDROMEJECT Ben Collins
2005-12-20 14:16             ` Jens Axboe
2005-12-20 20:41             ` john stultz [this message]
2005-12-20 20:54               ` Jens Axboe
2005-12-20 20:55                 ` john stultz
2005-12-20 20:58                   ` Jens Axboe
2005-12-20 20:58                     ` john stultz
2005-12-20 20:55               ` Ben Collins
2005-12-20 16:48           ` [RFC] Let non-root users eject their ipods? Bill Davidsen
2005-12-22 10:56 ` Alan Cox
2005-12-22 16:57   ` john stultz
2005-12-24 21:17   ` Jan Engelhardt

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=1135111300.27117.41.camel@cog.beaverton.ibm.com \
    --to=johnstul@us.ibm.com \
    --cc=axboe@suse.de \
    --cc=ben.collins@ubuntu.com \
    --cc=greg@kroah.com \
    --cc=linux-kernel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).