Re: Problems with eject and pktcdvd

From: Peter Osterlund
Date: Sun Feb 05 2006 - 14:14:12 EST


Damian Pietras <daper@xxxxxxxxx> writes:

> On Sun, Jan 15, 2006 at 09:47:40PM +0100, Peter Osterlund wrote:
> >
> > The irq timeout problem might be broken hardware/firmware, but there
> > is a problem with drive locking and the pktcdvd driver.
> >
> > If you do
> >
> > pktsetup 0 /dev/hdc
> > mount /dev/hdc /mnt/tmp
> > umount /mnt/tmp
> >
> > the door will be left in a locked state. (It gets unlocked when you
> > run "pktsetup -d 0" though.) However, if you do:
> >
> > pktsetup 0 /dev/hdc
> > mount /dev/pktcdvd/0 /mnt/tmp
> > umount /mnt/tmp
>
> Thanks!
>
> It works this way without any irq timeout. Unfortunately I can't use it
> as a workaround, because CD-R media must be mounted with '-o ro' or I
> get 'pktcdvd: Wrong disc profile (9)', so I can't just put it in fstab
> and use 'mount /media/cdrom' for both CD-R and RW discs.

Please try this patch.


Allow non-writable media to be mounted.

Signed-off-by: Peter Osterlund <petero2@xxxxxxxxx>
---

drivers/block/pktcdvd.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index 3445386..04117a7 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -1896,7 +1896,7 @@ static int pkt_open_write(struct pktcdvd

if ((ret = pkt_probe_settings(pd))) {
DPRINTK("pktcdvd: %s failed probe\n", pd->name);
- return -EIO;
+ return -EROFS;
}

if ((ret = pkt_set_write_settings(pd))) {
@@ -2054,10 +2054,9 @@ static int pkt_open(struct inode *inode,
goto out_dec;
}
} else {
- if (pkt_open_dev(pd, file->f_mode & FMODE_WRITE)) {
- ret = -EIO;
+ ret = pkt_open_dev(pd, file->f_mode & FMODE_WRITE);
+ if (ret)
goto out_dec;
- }
/*
* needed here as well, since ext2 (among others) may change
* the blocksize at mount time

--
Peter Osterlund - petero2@xxxxxxxxx
http://web.telia.com/~u89404340
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/