]> err.no Git - linux-2.6/commitdiff
[PATCH] libata: Add ata_scsi_dev_disabled
authorBrian King <brking@us.ibm.com>
Mon, 12 Jun 2006 19:54:17 +0000 (14:54 -0500)
committerJeff Garzik <jeff@garzik.org>
Fri, 23 Jun 2006 03:46:45 +0000 (23:46 -0400)
Separate out parts of ata_scsi_find_dev to be reused in
future SAS/SATA patches.

Acked-by: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Brian King <brking@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/scsi/libata-scsi.c

index d86abed62007511d64f7fef4ea275d2c21cdb20e..93d18a74c401c37fe194422377736718c8bb02b1 100644 (file)
@@ -2373,6 +2373,36 @@ static struct ata_device * __ata_scsi_find_dev(struct ata_port *ap,
        return ata_find_dev(ap, scsidev->id);
 }
 
+/**
+ *     ata_scsi_dev_enabled - determine if device is enabled
+ *     @dev: ATA device
+ *
+ *     Determine if commands should be sent to the specified device.
+ *
+ *     LOCKING:
+ *     spin_lock_irqsave(host_set lock)
+ *
+ *     RETURNS:
+ *     0 if commands are not allowed / 1 if commands are allowed
+ */
+
+static int ata_scsi_dev_enabled(struct ata_device *dev)
+{
+       if (unlikely(!ata_dev_enabled(dev)))
+               return 0;
+
+       if (!atapi_enabled || (dev->ap->flags & ATA_FLAG_NO_ATAPI)) {
+               if (unlikely(dev->class == ATA_DEV_ATAPI)) {
+                       ata_dev_printk(dev, KERN_WARNING,
+                                      "WARNING: ATAPI is %s, device ignored.\n",
+                                      atapi_enabled ? "not supported with this driver" : "disabled");
+                       return 0;
+               }
+       }
+
+       return 1;
+}
+
 /**
  *     ata_scsi_find_dev - lookup ata_device from scsi_cmnd
  *     @ap: ATA port to which the device is attached
@@ -2394,18 +2424,9 @@ ata_scsi_find_dev(struct ata_port *ap, const struct scsi_device *scsidev)
 {
        struct ata_device *dev = __ata_scsi_find_dev(ap, scsidev);
 
-       if (unlikely(!dev || !ata_dev_enabled(dev)))
+       if (unlikely(!dev || !ata_scsi_dev_enabled(dev)))
                return NULL;
 
-       if (!atapi_enabled || (ap->flags & ATA_FLAG_NO_ATAPI)) {
-               if (unlikely(dev->class == ATA_DEV_ATAPI)) {
-                       ata_dev_printk(dev, KERN_WARNING,
-                               "WARNING: ATAPI is %s, device ignored.\n",
-                               atapi_enabled ? "not supported with this driver" : "disabled");
-                       return NULL;
-               }
-       }
-
        return dev;
 }