From: Robert Hancock <hancockrwd@gmail.com>
To: linux-kernel <linux-kernel@vger.kernel.org>,
linux-scsi <linux-scsi@vger.kernel.org>
Cc: stable@kernel.org
Subject: [PATCH] scsi: properly export media change notification capability in block device flags
Date: Sun, 11 Oct 2009 13:54:11 -0600 [thread overview]
Message-ID: <4AD237E3.6000206@gmail.com> (raw)
Due to some oversight, the SCSI capability for reporting media change
notifications was never actually translated into setting the appropriate
GENHD_FL_MEDIA_CHANGE_NOTIFY flag. HAL uses this flag to detect whether the
block device supports change notifications and so it never actually got
detected. Set the flag when appropriate in sd and sr.
Signed-off-by: Robert Hancock <hancockrwd@gmail.com>
---
Gaah, am I disappointed in finding this one. Apparently people went to the
trouble of adding ATAPI AN support, and adding the appropriate flags to indicate
to userspace that it was supported, but nobody ever tested to make sure that
the support worked all the way through to actually make HAL stop polling
optical drives that support AN, which to my dismay, it doesn't. In fact even
with this patch it still doesn't seem to, but that's presumably some HAL bug.
HAL does now report that storage.removable.support_async_notification = true,
however.
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 8dd96dc..c1f474e 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -2012,6 +2012,8 @@ static void sd_probe_async(void *data, async_cookie_t cookie)
gd->flags = GENHD_FL_EXT_DEVT | GENHD_FL_DRIVERFS;
if (sdp->removable)
gd->flags |= GENHD_FL_REMOVABLE;
+ if (test_bit(SDEV_EVT_MEDIA_CHANGE, sdp->supported_events))
+ gd->flags |= GENHD_FL_MEDIA_CHANGE_NOTIFY;
dev_set_drvdata(dev, sdkp);
add_disk(gd);
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
index eb61f7a..485898e 100644
--- a/drivers/scsi/sr.c
+++ b/drivers/scsi/sr.c
@@ -642,6 +642,8 @@ static int sr_probe(struct device *dev)
dev_set_drvdata(dev, cd);
disk->flags |= GENHD_FL_REMOVABLE;
+ if (test_bit(SDEV_EVT_MEDIA_CHANGE, sdev->supported_events))
+ disk->flags |= GENHD_FL_MEDIA_CHANGE_NOTIFY;
add_disk(disk);
sdev_printk(KERN_DEBUG, sdev,
next reply other threads:[~2009-10-11 19:54 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-11 19:54 Robert Hancock [this message]
2009-10-11 20:12 ` [PATCH] scsi: properly export media change notification capability in block device flags Robert Hancock
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=4AD237E3.6000206@gmail.com \
--to=hancockrwd@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=stable@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).