[EMAIL PROTECTED] wrote:
From: Kristen Carlson Accardi <[EMAIL PROTECTED]>

If Asynchronous Notification of media change events is supported, pass that
information up to the SCSI layer.

Signed-off-by: Kristen Carlson Accardi <[EMAIL PROTECTED]>
Cc: Jeff Garzik <[EMAIL PROTECTED]>
Cc: Tejun Heo <[EMAIL PROTECTED]>
Cc: James Bottomley <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---

 drivers/ata/libata-scsi.c |    3 +++
 1 file changed, 3 insertions(+)

diff -puN drivers/ata/libata-scsi.c~libata-expose-an-to-user-space 
drivers/ata/libata-scsi.c
--- a/drivers/ata/libata-scsi.c~libata-expose-an-to-user-space
+++ a/drivers/ata/libata-scsi.c
@@ -773,6 +773,9 @@ static void ata_scsi_dev_config(struct s
                blk_queue_max_hw_segments(q, q->max_hw_segments - 1);
        }
+ if (dev->flags & ATA_DFLAG_AN)
+               sdev->media_change_notify = 1;
+

Methinks this wasn't tested, as you missed removal of the crucial OTHER_AN_PATCHES_HAVE_BEEN_APPLIED ifdef-ery... :)

Anyway, I updated the patch for the media_event thingy in the last email, and applied the attached patch

commit 6ba2326c804e2d449c2f40a63ba0a9ea650bef47
Author: Jeff Garzik <[EMAIL PROTECTED]>
Date:   Thu Oct 25 03:20:05 2007 -0400

    [libata] Utilize new SCSI media event infrastructure
    
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>

 drivers/ata/libata-scsi.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

6ba2326c804e2d449c2f40a63ba0a9ea650bef47
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index f5d5420..65b6153 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -773,6 +773,9 @@ static void ata_scsi_dev_config(struct scsi_device *sdev,
                blk_queue_max_hw_segments(q, q->max_hw_segments - 1);
        }
 
+       if (dev->flags & ATA_DFLAG_AN)
+               sdev->media_events = 1;
+
        if (dev->flags & ATA_DFLAG_NCQ) {
                int depth;
 
@@ -3248,10 +3251,8 @@ static void ata_scsi_handle_link_detach(struct ata_link 
*link)
  */
 void ata_scsi_media_change_notify(struct ata_device *dev)
 {
-#ifdef OTHER_AN_PATCHES_HAVE_BEEN_APPLIED
        if (dev->sdev)
-               scsi_device_event_notify(dev->sdev, SDEV_MEDIA_CHANGE);
-#endif
+               scsi_device_event_notify(dev->sdev, 1UL << SDEV_MEDIA_CHANGE);
 }
 
 /**

Reply via email to