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
next prev 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).