blacklist device don't use SYNCHRONIZE_CACHE
PATCH 1/1 blacklist device don't use SYNCHRONIZE_CACHE
Adds a flag to the SCSI blacklist infrastructure to allow marking devices we shouldn't send a SYNCRONIZE_CACHE command to. Adds the Chaparral JFS224 to the blacklist with this flag.
Signed-off-by Michael Clark <[email protected]>
drivers/scsi/scsi_devinfo.c +1 -0
@@ -125,6 +125,7 @@ {"CMD", "CRA-7280", NULL, BLIST_SPARSELUN}, /* CMD RAID Controller */ {"CNSI", "G7324", NULL, BLIST_SPARSELUN}, /* Chaparral G7324 RAID */ {"CNSi", "G8324", NULL, BLIST_SPARSELUN}, /* Chaparral G8324 RAID */ + {"CNSi", "JFS224", NULL, BLIST_SPARSELUN | BLIST_NO_SYNC_CACHE}, {"COMPAQ", "LOGICAL VOLUME", NULL, BLIST_FORCELUN}, {"COMPAQ", "CR3500", NULL, BLIST_FORCELUN}, {"COMPAQ", "MSA1000", NULL, BLIST_SPARSELUN | BLIST_NOSTARTONADD},
drivers/scsi/scsi_scan.c +3 -0
@@ -668,6 +668,9 @@if (*bflags &BLIST_NOT_LOCKABLE ) sdev->lockable =0 ; +if (*bflags &BLIST_NO_SYNC_CACHE ) + sdev->no_sync_cache =1 ; +if (sdev->host->hostt->slave_configure) sdev->host->hostt->slave_configure (sdev);
drivers/scsi/sd.c +3 -0
@@ -1560,6 +1560,9 @@if (!sdkp->WCE)return ; +if (sdp->no_sync_cache) +return ; +printk (KERN_NOTICE "Synchronizing SCSI cache for disk %s: \n" , sdkp->disk->disk_name);sd_sync_cache (sdp);
include/scsi/scsi_device.h +1 -0
@@ -106,6 +106,7 @@ unsigned use_192_bytes_for_3f:1; /* ask for 192 bytes from page 0x3f */ unsigned no_start_on_add:1; /* do not issue start on add */ unsigned allow_restart:1; /* issue START_UNIT in error handler */ + unsigned no_sync_cache:1; /* do not issue SYNCRONIZE_CACHE */unsigned int device_blocked;/* Device returned QUEUE_FULL. */
include/scsi/scsi_devinfo.h +1 -0
@@ -25,4 +25,5 @@(if HBA supports more than 8 LUNs) */ #define BLIST_NOREPORTLUN 0x40000/* don't try REPORT_LUNS scan (SCSI-3 devs) */ #define BLIST_NOT_LOCKABLE 0x80000/* don't use PREVENT-ALLOW commands */ +#define BLIST_NO_SYNC_CACHE 0x100000/* don't use SYNCHRONIZE_CACHE commands */ #endif