From: Andrey Borzenkov <arvidjaar@mail.ru>
To: linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org
Subject: 2.6.1: media change check fails for busy unplugged device
Date: Sun, 18 Jan 2004 21:41:12 +0300 [thread overview]
Message-ID: <200401182141.12468.arvidjaar@mail.ru> (raw)
If we unplug busy device (consider mounted USB stick) media change check
always returns true (no media change happened). It happens because
- device state is set to SDEV_DEL and scsi_prep_fn silently kills any request
including TEST_UNIT_READY sent by sd_media_changed without propagating any
information back to caller
- sdev->online still remains TRUE
so nothing ever tells sd_media_changed that device is gone.
this effectively prevents supermount from noticing that it needs remount
subfs.
What is the right place to catch those deleted device? For now I add this as
part of supermount patch, but it looks too ugly (and in the wrong place):
--- linux-2.6.1/drivers/scsi/sd.c 29 Dec 2003 17:20:12 -0000
+++ linux-2.6.1/drivers/scsi/sd.c 18 Jan 2004 18:20:54 -0000
@@ -620,6 +622,16 @@ static int sd_media_changed(struct gendi
goto not_present;
/*
+ * FIXME HACK
+ * busy device that is unplugged is SDEV_DEL but online and ioctl
+ * does not return any error. Oh well, it is likely layering
+ * violation but for now it enables media checks for supermount
+ */
+
+ if (sdp->sdev_state == SDEV_DEL)
+ goto not_present;
+
+ /*
* For removable scsi disk we have to recognise the presence
* of a disk in the drive. This is kept in the struct scsi_disk
* struct and tested at open ! Daniel Roche (dan@lectra.fr)
TIA
-andrey
next reply other threads:[~2004-01-18 19:12 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-18 18:41 Andrey Borzenkov [this message]
2004-01-19 23:36 ` 2.6.1: media change check fails for busy unplugged device Mike Anderson
2004-01-26 19:16 ` Andrey Borzenkov
2004-01-29 9:30 ` Mike Anderson
2004-01-31 13:53 ` James Bottomley
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=200401182141.12468.arvidjaar@mail.ru \
--to=arvidjaar@mail.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@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.