diff options
31 files changed, 129 insertions, 57 deletions
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index db6dfcfa3e2e..ab58556d347c 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c | |||
| @@ -3625,6 +3625,7 @@ int ata_scsi_add_hosts(struct ata_host *host, struct scsi_host_template *sht) | |||
| 3625 | shost->max_lun = 1; | 3625 | shost->max_lun = 1; |
| 3626 | shost->max_channel = 1; | 3626 | shost->max_channel = 1; |
| 3627 | shost->max_cmd_len = 16; | 3627 | shost->max_cmd_len = 16; |
| 3628 | shost->no_write_same = 1; | ||
| 3628 | 3629 | ||
| 3629 | /* Schedule policy is determined by ->qc_defer() | 3630 | /* Schedule policy is determined by ->qc_defer() |
| 3630 | * callback and it needs to see every deferred qc. | 3631 | * callback and it needs to see every deferred qc. |
diff --git a/drivers/firewire/sbp2.c b/drivers/firewire/sbp2.c index 281029daf98c..b0bb056458a3 100644 --- a/drivers/firewire/sbp2.c +++ b/drivers/firewire/sbp2.c | |||
| @@ -1623,6 +1623,7 @@ static struct scsi_host_template scsi_driver_template = { | |||
| 1623 | .cmd_per_lun = 1, | 1623 | .cmd_per_lun = 1, |
| 1624 | .can_queue = 1, | 1624 | .can_queue = 1, |
| 1625 | .sdev_attrs = sbp2_scsi_sysfs_attrs, | 1625 | .sdev_attrs = sbp2_scsi_sysfs_attrs, |
| 1626 | .no_write_same = 1, | ||
| 1626 | }; | 1627 | }; |
| 1627 | 1628 | ||
| 1628 | MODULE_AUTHOR("Kristian Hoegsberg <krh@bitplanet.net>"); | 1629 | MODULE_AUTHOR("Kristian Hoegsberg <krh@bitplanet.net>"); |
diff --git a/drivers/misc/enclosure.c b/drivers/misc/enclosure.c index 0e8df41aaf14..2cf2bbc0b927 100644 --- a/drivers/misc/enclosure.c +++ b/drivers/misc/enclosure.c | |||
| @@ -198,6 +198,13 @@ static void enclosure_remove_links(struct enclosure_component *cdev) | |||
| 198 | { | 198 | { |
| 199 | char name[ENCLOSURE_NAME_SIZE]; | 199 | char name[ENCLOSURE_NAME_SIZE]; |
| 200 | 200 | ||
| 201 | /* | ||
| 202 | * In odd circumstances, like multipath devices, something else may | ||
| 203 | * already have removed the links, so check for this condition first. | ||
| 204 | */ | ||
| 205 | if (!cdev->dev->kobj.sd) | ||
| 206 | return; | ||
| 207 | |||
| 201 | enclosure_link_name(cdev, name); | 208 | enclosure_link_name(cdev, name); |
| 202 | sysfs_remove_link(&cdev->dev->kobj, name); | 209 | sysfs_remove_link(&cdev->dev->kobj, name); |
| 203 | sysfs_remove_link(&cdev->cdev.kobj, "device"); | 210 | sysfs_remove_link(&cdev->cdev.kobj, "device"); |
diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c index 5e1e12c0cf42..0a7325361d29 100644 --- a/drivers/scsi/3w-9xxx.c +++ b/drivers/scsi/3w-9xxx.c | |||
| @@ -2025,7 +2025,8 @@ static struct scsi_host_template driver_template = { | |||
| 2025 | .cmd_per_lun = TW_MAX_CMDS_PER_LUN, | 2025 | .cmd_per_lun = TW_MAX_CMDS_PER_LUN, |
| 2026 | .use_clustering = ENABLE_CLUSTERING, | 2026 | .use_clustering = ENABLE_CLUSTERING, |
| 2027 | .shost_attrs = twa_host_attrs, | 2027 | .shost_attrs = twa_host_attrs, |
| 2028 | .emulated = 1 | 2028 | .emulated = 1, |
| 2029 | .no_write_same = 1, | ||
| 2029 | }; | 2030 | }; |
| 2030 | 2031 | ||
| 2031 | /* This function will probe and initialize a card */ | 2032 | /* This function will probe and initialize a card */ |
diff --git a/drivers/scsi/3w-sas.c b/drivers/scsi/3w-sas.c index c845bdbeb6c0..4de346017e9f 100644 --- a/drivers/scsi/3w-sas.c +++ b/drivers/scsi/3w-sas.c | |||
| @@ -1600,7 +1600,8 @@ static struct scsi_host_template driver_template = { | |||
| 1600 | .cmd_per_lun = TW_MAX_CMDS_PER_LUN, | 1600 | .cmd_per_lun = TW_MAX_CMDS_PER_LUN, |
| 1601 | .use_clustering = ENABLE_CLUSTERING, | 1601 | .use_clustering = ENABLE_CLUSTERING, |
| 1602 | .shost_attrs = twl_host_attrs, | 1602 | .shost_attrs = twl_host_attrs, |
| 1603 | .emulated = 1 | 1603 | .emulated = 1, |
| 1604 | .no_write_same = 1, | ||
| 1604 | }; | 1605 | }; |
| 1605 | 1606 | ||
| 1606 | /* This function will probe and initialize a card */ | 1607 | /* This function will probe and initialize a card */ |
diff --git a/drivers/scsi/3w-xxxx.c b/drivers/scsi/3w-xxxx.c index b9276d10b25c..752624e6bc00 100644 --- a/drivers/scsi/3w-xxxx.c +++ b/drivers/scsi/3w-xxxx.c | |||
| @@ -2279,7 +2279,8 @@ static struct scsi_host_template driver_template = { | |||
| 2279 | .cmd_per_lun = TW_MAX_CMDS_PER_LUN, | 2279 | .cmd_per_lun = TW_MAX_CMDS_PER_LUN, |
| 2280 | .use_clustering = ENABLE_CLUSTERING, | 2280 | .use_clustering = ENABLE_CLUSTERING, |
| 2281 | .shost_attrs = tw_host_attrs, | 2281 | .shost_attrs = tw_host_attrs, |
| 2282 | .emulated = 1 | 2282 | .emulated = 1, |
| 2283 | .no_write_same = 1, | ||
| 2283 | }; | 2284 | }; |
| 2284 | 2285 | ||
| 2285 | /* This function will probe and initialize a card */ | 2286 | /* This function will probe and initialize a card */ |
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index f0d432c139d0..4921ed19a027 100644 --- a/drivers/scsi/aacraid/linit.c +++ b/drivers/scsi/aacraid/linit.c | |||
| @@ -1081,6 +1081,7 @@ static struct scsi_host_template aac_driver_template = { | |||
| 1081 | #endif | 1081 | #endif |
| 1082 | .use_clustering = ENABLE_CLUSTERING, | 1082 | .use_clustering = ENABLE_CLUSTERING, |
| 1083 | .emulated = 1, | 1083 | .emulated = 1, |
| 1084 | .no_write_same = 1, | ||
| 1084 | }; | 1085 | }; |
| 1085 | 1086 | ||
| 1086 | static void __aac_shutdown(struct aac_dev * aac) | 1087 | static void __aac_shutdown(struct aac_dev * aac) |
diff --git a/drivers/scsi/arcmsr/arcmsr_hba.c b/drivers/scsi/arcmsr/arcmsr_hba.c index 97fd450aff09..4f6a30b8e5f9 100644 --- a/drivers/scsi/arcmsr/arcmsr_hba.c +++ b/drivers/scsi/arcmsr/arcmsr_hba.c | |||
| @@ -137,6 +137,7 @@ static struct scsi_host_template arcmsr_scsi_host_template = { | |||
| 137 | .cmd_per_lun = ARCMSR_MAX_CMD_PERLUN, | 137 | .cmd_per_lun = ARCMSR_MAX_CMD_PERLUN, |
| 138 | .use_clustering = ENABLE_CLUSTERING, | 138 | .use_clustering = ENABLE_CLUSTERING, |
| 139 | .shost_attrs = arcmsr_host_attrs, | 139 | .shost_attrs = arcmsr_host_attrs, |
| 140 | .no_write_same = 1, | ||
| 140 | }; | 141 | }; |
| 141 | static struct pci_device_id arcmsr_device_id_table[] = { | 142 | static struct pci_device_id arcmsr_device_id_table[] = { |
| 142 | {PCI_DEVICE(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1110)}, | 143 | {PCI_DEVICE(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1110)}, |
diff --git a/drivers/scsi/bfa/bfa_fcs.h b/drivers/scsi/bfa/bfa_fcs.h index 94d5d0102f7d..42bcb970445a 100644 --- a/drivers/scsi/bfa/bfa_fcs.h +++ b/drivers/scsi/bfa/bfa_fcs.h | |||
| @@ -296,6 +296,7 @@ wwn_t bfa_fcs_lport_get_rport(struct bfa_fcs_lport_s *port, wwn_t wwn, | |||
| 296 | struct bfa_fcs_lport_s *bfa_fcs_lookup_port(struct bfa_fcs_s *fcs, | 296 | struct bfa_fcs_lport_s *bfa_fcs_lookup_port(struct bfa_fcs_s *fcs, |
| 297 | u16 vf_id, wwn_t lpwwn); | 297 | u16 vf_id, wwn_t lpwwn); |
| 298 | 298 | ||
| 299 | void bfa_fcs_lport_set_symname(struct bfa_fcs_lport_s *port, char *symname); | ||
| 299 | void bfa_fcs_lport_get_info(struct bfa_fcs_lport_s *port, | 300 | void bfa_fcs_lport_get_info(struct bfa_fcs_lport_s *port, |
| 300 | struct bfa_lport_info_s *port_info); | 301 | struct bfa_lport_info_s *port_info); |
| 301 | void bfa_fcs_lport_get_attr(struct bfa_fcs_lport_s *port, | 302 | void bfa_fcs_lport_get_attr(struct bfa_fcs_lport_s *port, |
diff --git a/drivers/scsi/bfa/bfa_fcs_lport.c b/drivers/scsi/bfa/bfa_fcs_lport.c index 2f61a5af3658..f5e4e61a0fd7 100644 --- a/drivers/scsi/bfa/bfa_fcs_lport.c +++ b/drivers/scsi/bfa/bfa_fcs_lport.c | |||
| @@ -1097,6 +1097,17 @@ bfa_fcs_lport_init(struct bfa_fcs_lport_s *lport, | |||
| 1097 | bfa_sm_send_event(lport, BFA_FCS_PORT_SM_CREATE); | 1097 | bfa_sm_send_event(lport, BFA_FCS_PORT_SM_CREATE); |
| 1098 | } | 1098 | } |
| 1099 | 1099 | ||
| 1100 | void | ||
| 1101 | bfa_fcs_lport_set_symname(struct bfa_fcs_lport_s *port, | ||
| 1102 | char *symname) | ||
| 1103 | { | ||
| 1104 | strcpy(port->port_cfg.sym_name.symname, symname); | ||
| 1105 | |||
| 1106 | if (bfa_sm_cmp_state(port, bfa_fcs_lport_sm_online)) | ||
| 1107 | bfa_fcs_lport_ns_util_send_rspn_id( | ||
| 1108 | BFA_FCS_GET_NS_FROM_PORT(port), NULL); | ||
| 1109 | } | ||
| 1110 | |||
| 1100 | /* | 1111 | /* |
| 1101 | * fcs_lport_api | 1112 | * fcs_lport_api |
| 1102 | */ | 1113 | */ |
| @@ -5140,9 +5151,6 @@ bfa_fcs_lport_ns_util_send_rspn_id(void *cbarg, struct bfa_fcxp_s *fcxp_alloced) | |||
| 5140 | u8 *psymbl = &symbl[0]; | 5151 | u8 *psymbl |
