[SCSI] zfcp: non-experimental support for DIF/DIX
Steffen Maier [Mon, 15 Aug 2011 12:40:30 +0000 (14:40 +0200)]
DIF/DIX support for zfcp is no longer experimental,
and config option is no longer necessary.
Return error from queuecommand for unsupported data directions.

Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>

drivers/s390/scsi/zfcp_fsf.c
drivers/s390/scsi/zfcp_scsi.c
drivers/scsi/Kconfig

index 022fb6a..fa86c6a 100644 (file)
@@ -2207,7 +2207,8 @@ int zfcp_fsf_fcp_cmnd(struct scsi_cmnd *scsi_cmnd)
                io->ref_tag_value = scsi_get_lba(scsi_cmnd) & 0xFFFFFFFF;
        }
 
-       zfcp_fsf_set_data_dir(scsi_cmnd, &io->data_direction);
+       if (zfcp_fsf_set_data_dir(scsi_cmnd, &io->data_direction))
+               goto failed_scsi_cmnd;
 
        fcp_cmnd = (struct fcp_cmnd *) &req->qtcb->bottom.io.fcp_cmnd;
        zfcp_fc_scsi_to_fcp(fcp_cmnd, scsi_cmnd, 0);
index 7cac873..96c31a7 100644 (file)
@@ -24,11 +24,8 @@ module_param_named(queue_depth, default_depth, uint, 0600);
 MODULE_PARM_DESC(queue_depth, "Default queue depth for new SCSI devices");
 
 static bool enable_dif;
-
-#ifdef CONFIG_ZFCP_DIF
-module_param_named(dif, enable_dif, bool, 0600);
+module_param_named(dif, enable_dif, bool, 0400);
 MODULE_PARM_DESC(dif, "Enable DIF/DIX data integrity support");
-#endif
 
 static bool allow_lun_scan = 1;
 module_param(allow_lun_scan, bool, 0600);
index 74c967e..c17aec0 100644 (file)
@@ -1881,10 +1881,6 @@ config ZFCP
           called zfcp. If you want to compile it as a module, say M here
           and read <file:Documentation/kbuild/modules.txt>.
 
-config ZFCP_DIF
-       tristate "T10 DIF/DIX support for the zfcp driver (EXPERIMENTAL)"
-       depends on ZFCP && EXPERIMENTAL
-
 config SCSI_PMCRAID
        tristate "PMC SIERRA Linux MaxRAID adapter support"
        depends on PCI && SCSI && NET