Lines Matching refs:sdev

101 	struct scsi_device	*sdev;  member
117 struct scsi_device *sdev,
119 static void alua_check(struct scsi_device *sdev, bool force);
138 static int submit_rtpg(struct scsi_device *sdev, unsigned char *buff, in submit_rtpg() argument
154 return scsi_execute(sdev, cdb, DMA_FROM_DEVICE, buff, bufflen, NULL, in submit_rtpg()
166 static int submit_stpg(struct scsi_device *sdev, int group_id, in submit_stpg() argument
186 return scsi_execute(sdev, cdb, DMA_TO_DEVICE, stpg_data, stpg_len, NULL, in submit_stpg()
223 static struct alua_port_group *alua_alloc_pg(struct scsi_device *sdev, in alua_alloc_pg() argument
232 pg->device_id_len = scsi_vpd_lun_id(sdev, pg->device_id_str, in alua_alloc_pg()
239 sdev_printk(KERN_INFO, sdev, in alua_alloc_pg()
280 static int alua_check_tpgs(struct scsi_device *sdev) in alua_check_tpgs() argument
288 if (sdev->type != TYPE_DISK) { in alua_check_tpgs()
289 sdev_printk(KERN_INFO, sdev, in alua_check_tpgs()
295 tpgs = scsi_device_tpgs(sdev); in alua_check_tpgs()
298 sdev_printk(KERN_INFO, sdev, in alua_check_tpgs()
303 sdev_printk(KERN_INFO, sdev, "%s: supports explicit TPGS\n", in alua_check_tpgs()
307 sdev_printk(KERN_INFO, sdev, "%s: supports implicit TPGS\n", in alua_check_tpgs()
311 sdev_printk(KERN_INFO, sdev, "%s: not supported\n", in alua_check_tpgs()
315 sdev_printk(KERN_INFO, sdev, in alua_check_tpgs()
332 static int alua_check_vpd(struct scsi_device *sdev, struct alua_dh_data *h, in alua_check_vpd() argument
340 group_id = scsi_vpd_tpg_id(sdev, &rel_port); in alua_check_vpd()
347 sdev_printk(KERN_INFO, sdev, in alua_check_vpd()
353 pg = alua_alloc_pg(sdev, group_id, tpgs); in alua_check_vpd()
360 sdev_printk(KERN_INFO, sdev, in alua_check_vpd()
365 sdev_printk(KERN_INFO, sdev, in alua_check_vpd()
390 sdev, NULL, true); in alua_check_vpd()
421 static int alua_check_sense(struct scsi_device *sdev, in alua_check_sense() argument
430 alua_check(sdev, false); in alua_check_sense()
441 alua_check(sdev, true); in alua_check_sense()
458 alua_check(sdev, true); in alua_check_sense()
465 alua_check(sdev, true); in alua_check_sense()
494 static int alua_tur(struct scsi_device *sdev) in alua_tur() argument
499 retval = scsi_test_unit_ready(sdev, ALUA_FAILOVER_TIMEOUT * HZ, in alua_tur()
518 static int alua_rtpg(struct scsi_device *sdev, struct alua_port_group *pg) in alua_rtpg() argument
544 retval = submit_rtpg(sdev, buff, bufflen, &sense_hdr, pg->flags); in alua_rtpg()
557 sdev_printk(KERN_INFO, sdev, in alua_rtpg()
564 sdev_printk(KERN_INFO, sdev, in alua_rtpg()
598 sdev_printk(KERN_ERR, sdev, "%s: rtpg retry\n", in alua_rtpg()
600 scsi_print_sense_hdr(sdev, ALUA_DH_NAME, &sense_hdr); in alua_rtpg()
604 sdev_printk(KERN_ERR, sdev, "%s: rtpg failed\n", in alua_rtpg()
606 scsi_print_sense_hdr(sdev, ALUA_DH_NAME, &sense_hdr); in alua_rtpg()
620 sdev_printk(KERN_WARNING, sdev, in alua_rtpg()
636 sdev_printk(KERN_INFO, sdev, in alua_rtpg()
668 BUG_ON(!h->sdev); in alua_rtpg()
669 h->sdev->access_state = desc[0]; in alua_rtpg()
683 sdev_printk(KERN_INFO, sdev, in alua_rtpg()
710 BUG_ON(!h->sdev); in alua_rtpg()
711 h->sdev->access_state = in alua_rtpg()
714 h->sdev->access_state |= in alua_rtpg()
744 static unsigned alua_stpg(struct scsi_device *sdev, struct alua_port_group *pg) in alua_stpg() argument
770 sdev_printk(KERN_INFO, sdev, in alua_stpg()
775 retval = submit_stpg(sdev, pg->group_id, &sense_hdr); in alua_stpg()
779 sdev_printk(KERN_INFO, sdev, in alua_stpg()
785 sdev_printk(KERN_INFO, sdev, "%s: stpg failed\n", in alua_stpg()
787 scsi_print_sense_hdr(sdev, ALUA_DH_NAME, &sense_hdr); in alua_stpg()
798 struct scsi_device *sdev; in alua_rtpg_work() local
805 sdev = pg->rtpg_sdev; in alua_rtpg_work()
806 if (!sdev) { in alua_rtpg_work()
820 if (alua_tur(sdev) == SCSI_DH_RETRY) { in alua_rtpg_work()
831 err = alua_rtpg(sdev, pg); in alua_rtpg_work()
847 err = alua_stpg(sdev, pg); in alua_rtpg_work()
873 scsi_device_put(sdev); in alua_rtpg_work()
889 struct scsi_device *sdev, in alua_rtpg_queue() argument
894 if (WARN_ON_ONCE(!pg) || scsi_device_get(sdev)) in alua_rtpg_queue()
907 pg->rtpg_sdev = sdev; in alua_rtpg_queue()
923 sdev = NULL; in alua_rtpg_queue()
927 if (sdev) in alua_rtpg_queue()
928 scsi_device_put(sdev); in alua_rtpg_queue()
940 static int alua_initialize(struct scsi_device *sdev, struct alua_dh_data *h) in alua_initialize() argument
945 tpgs = alua_check_tpgs(sdev); in alua_initialize()
947 err = alua_check_vpd(sdev, h, tpgs); in alua_initialize()
961 static int alua_set_params(struct scsi_device *sdev, const char *params) in alua_set_params() argument
963 struct alua_dh_data *h = sdev->handler_data; in alua_set_params()
1005 static int alua_activate(struct scsi_device *sdev, in alua_activate() argument
1008 struct alua_dh_data *h = sdev->handler_data; in alua_activate()
1034 if (alua_rtpg_queue(pg, sdev, qdata, true)) in alua_activate()
1051 static void alua_check(struct scsi_device *sdev, bool force) in alua_check() argument
1053 struct alua_dh_data *h = sdev->handler_data; in alua_check()
1064 alua_rtpg_queue(pg, sdev, NULL, force); in alua_check()
1074 static int alua_prep_fn(struct scsi_device *sdev, struct request *req) in alua_prep_fn() argument
1076 struct alua_dh_data *h = sdev->handler_data; in alua_prep_fn()
1098 static void alua_rescan(struct scsi_device *sdev) in alua_rescan() argument
1100 struct alua_dh_data *h = sdev->handler_data; in alua_rescan()
1102 alua_initialize(sdev, h); in alua_rescan()
1109 static int alua_bus_attach(struct scsi_device *sdev) in alua_bus_attach() argument
1120 h->sdev = sdev; in alua_bus_attach()
1124 err = alua_initialize(sdev, h); in alua_bus_attach()
1128 sdev->handler_data = h; in alua_bus_attach()
1139 static void alua_bus_detach(struct scsi_device *sdev) in alua_bus_detach() argument
1141 struct alua_dh_data *h = sdev->handler_data; in alua_bus_detach()
1147 h->sdev = NULL; in alua_bus_detach()
1155 sdev->handler_data = NULL; in alua_bus_detach()