All of lore.kernel.org
 help / color / mirror / Atom feed
From: Walt H <waltabbyh@comcast.net>
To: Ed Sweetman <ed.sweetman@wmich.edu>
Cc: linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: Can't eject a previously mounted CD?
Date: Mon, 29 Dec 2003 08:36:28 -0800	[thread overview]
Message-ID: <3FF0580C.5070604@comcast.net> (raw)
In-Reply-To: <3FEFDE4A.1030208@wmich.edu>

Ed Sweetman wrote:
> In your patch here i think the person who made the code originally
> confused or got wrong the conditions of success for opening the cdrom
> drive. This is in the same function as the patch applies to.
> 
>        if ((fp->f_flags & O_NONBLOCK) && (cdi->options & CDO_USE_FFLAGS))
>                 ret = cdi->ops->open(cdi, 1);
>         else
>                 ret = open_for_data(cdi);
> 
> 
>         if (!ret) cdi->use_count++;

Doesn't this increment it if the call succeeds? In open_for_data, ret is the
return code from the open call, which should be zero upon success. Problem is,
we already incremented it when we entered cdrom_open.

> 
> Here we see that if the open fails we incriment our use_count.  But this
> doesn't make sense. We increment the use_count at the  beginning of the
> function as a "lock" so that we can't do anything while the open
> function is executing like rmmod the cdrom (supposedly?).  Now removing
> the if(!ret) line makes sense. Under the out: label, if the open fails,
> then we close our makeshift lock on the device because our function is
> done. If it succeeded, then the use_count stays at 1 we go along our
> merry way.
> 

Yeah, my patch is just a hack :)  Not really for general use i think, but it
allows me to open the door using the button. The cdrom.c from test11-mm1 never
incremented use_count until after the success of one of the preceeding calls. I
was just undoing the original increment that now happens upon entering
cdrom_open. The use_count does control the door lock though. If you look under
cdrom_release, the door unlock code never gets executed until use_count=0. I
haven't checked overall operation of my cdrom drives enough to know what else is
wrong.

-Walt



  reply	other threads:[~2003-12-29 16:36 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-29  1:56 Can't eject a previously mounted CD? Walt H
2003-12-29  2:04 ` Ed Sweetman
2003-12-29  3:45   ` Walt H
2003-12-29  6:23     ` Ed Sweetman
2003-12-29  7:41       ` Ed Sweetman
2003-12-29  7:56     ` Ed Sweetman
2003-12-29 16:36       ` Walt H [this message]
2003-12-29 17:53         ` Ed Sweetman
2003-12-29 18:05           ` Walt H
2003-12-29 19:23           ` Walt H
2003-12-29 19:40             ` Jens Axboe
  -- strict thread matches above, loose matches on Subject: below --
2003-12-27  0:31 Matt
2003-12-27  0:44 ` Rob Love
2003-12-27  1:13   ` Ed Sweetman
2003-12-27 15:11     ` Matt
2003-12-27  3:12 ` Joshua Kwan
2003-12-26  8:15 Joshua Kwan
2003-12-26 10:34 ` Vojtech Pavlik
2003-12-26 19:44   ` Joshua Kwan
2003-12-26 19:54     ` Samuel Flory
2003-12-26 20:27       ` Joshua Kwan
2003-12-26 23:26         ` Ed Sweetman
2003-12-26 23:56           ` Nuno Silva
2003-12-27  2:28             ` Joshua Kwan
2003-12-29  0:20         ` Samuel Flory
2003-12-29  0:28           ` Ed Sweetman
2003-12-29  1:36             ` Ed Sweetman

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=3FF0580C.5070604@comcast.net \
    --to=waltabbyh@comcast.net \
    --cc=ed.sweetman@wmich.edu \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.