Lines Matching refs:h

227 	struct rdac_dh_data	*h;  member
293 struct rdac_dh_data *h, struct list_head *list) in rdac_failover_get() argument
301 if (h->ctlr->use_ms10) { in rdac_failover_get()
305 rdac_pg = &h->ctlr->mode_select.expanded; in rdac_failover_get()
317 rdac_pg = &h->ctlr->mode_select.legacy; in rdac_failover_get()
329 lun_table[qdata->h->lun] = 0x81; in rdac_failover_get()
333 rq = get_rdac_req(sdev, &h->ctlr->mode_select, data_size, WRITE); in rdac_failover_get()
338 if (h->ctlr->use_ms10) { in rdac_failover_get()
348 rq->sense = h->sense; in rdac_failover_get()
400 unsigned int len, struct rdac_dh_data *h) in submit_inquiry() argument
406 rq = get_rdac_req(sdev, &h->inq, len, READ); in submit_inquiry()
417 rq->sense = h->sense; in submit_inquiry()
430 static int get_lun_info(struct scsi_device *sdev, struct rdac_dh_data *h, in get_lun_info() argument
436 err = submit_inquiry(sdev, 0xC8, sizeof(struct c8_inquiry), h); in get_lun_info()
438 inqp = &h->inq.c8; in get_lun_info()
444 h->lun = inqp->lun[7]; /* Uses only the last byte */ in get_lun_info()
456 static int check_ownership(struct scsi_device *sdev, struct rdac_dh_data *h) in check_ownership() argument
461 h->state = RDAC_STATE_ACTIVE; in check_ownership()
462 err = submit_inquiry(sdev, 0xC9, sizeof(struct c9_inquiry), h); in check_ownership()
464 inqp = &h->inq.c9; in check_ownership()
467 h->mode = RDAC_MODE_IOSHIP; /* LUN in IOSHIP mode */ in check_ownership()
469 h->mode = RDAC_MODE_AVT; /* LUN in AVT mode */ in check_ownership()
471 h->mode = RDAC_MODE; /* LUN in RDAC mode */ in check_ownership()
475 h->lun_state = RDAC_LUN_OWNED; in check_ownership()
477 h->lun_state = RDAC_LUN_UNOWNED; in check_ownership()
478 if (h->mode == RDAC_MODE) in check_ownership()
479 h->state = RDAC_STATE_PASSIVE; in check_ownership()
484 h->preferred = RDAC_PREFERRED; in check_ownership()
486 h->preferred = RDAC_NON_PREFERRED; in check_ownership()
493 struct rdac_dh_data *h, char *array_name, u8 *array_id) in initialize_controller() argument
498 err = submit_inquiry(sdev, 0xC4, sizeof(struct c4_inquiry), h); in initialize_controller()
500 inqp = &h->inq.c4; in initialize_controller()
508 h->ctlr = get_controller(index, array_name, array_id, sdev); in initialize_controller()
509 if (!h->ctlr) in initialize_controller()
516 static int set_mode_select(struct scsi_device *sdev, struct rdac_dh_data *h) in set_mode_select() argument
521 err = submit_inquiry(sdev, 0xC2, sizeof(struct c2_inquiry), h); in set_mode_select()
523 inqp = &h->inq.c2; in set_mode_select()
529 h->ctlr->use_ms10 = 1; in set_mode_select()
531 h->ctlr->use_ms10 = 0; in set_mode_select()
541 struct rdac_dh_data *h = sdev->handler_data; in mode_select_handle_sense() local
573 (char *) h->ctlr->array_name, h->ctlr->index, in mode_select_handle_sense()
586 struct rdac_dh_data *h = sdev->handler_data; in send_mode_select() local
600 rq = rdac_failover_get(sdev, h, &list); in send_mode_select()
606 (char *) h->ctlr->array_name, h->ctlr->index, in send_mode_select()
612 err = mode_select_handle_sense(sdev, h->sense); in send_mode_select()
619 h->state = RDAC_STATE_ACTIVE; in send_mode_select()
622 (char *) h->ctlr->array_name, h->ctlr->index); in send_mode_select()
629 qdata->h->state = RDAC_STATE_ACTIVE; in send_mode_select()
647 qdata->h = sdev->handler_data; in queue_mode_select()
651 ctlr = qdata->h->ctlr; in queue_mode_select()
666 struct rdac_dh_data *h = sdev->handler_data; in rdac_activate() local
670 err = check_ownership(sdev, h); in rdac_activate()
674 switch (h->mode) { in rdac_activate()
676 if (h->lun_state == RDAC_LUN_UNOWNED) in rdac_activate()
680 if ((h->lun_state == RDAC_LUN_UNOWNED) && in rdac_activate()
681 (h->preferred == RDAC_PREFERRED)) in rdac_activate()
701 struct rdac_dh_data *h = sdev->handler_data; in rdac_prep_fn() local
704 if (h->state != RDAC_STATE_ACTIVE) { in rdac_prep_fn()
715 struct rdac_dh_data *h = sdev->handler_data; in rdac_check_sense() local
719 (char *) h->ctlr->array_name, h->ctlr->index, in rdac_check_sense()
756 h->state = RDAC_STATE_PASSIVE; in rdac_check_sense()
779 struct rdac_dh_data *h; in rdac_bus_attach() local
784 h = kzalloc(sizeof(*h) , GFP_KERNEL); in rdac_bus_attach()
785 if (!h) in rdac_bus_attach()
787 h->lun = UNINITIALIZED_LUN; in rdac_bus_attach()
788 h->state = RDAC_STATE_ACTIVE; in rdac_bus_attach()
790 err = get_lun_info(sdev, h, array_name, array_id); in rdac_bus_attach()
794 err = initialize_controller(sdev, h, array_name, array_id); in rdac_bus_attach()
798 err = check_ownership(sdev, h); in rdac_bus_attach()
802 err = set_mode_select(sdev, h); in rdac_bus_attach()
808 RDAC_NAME, h->lun, mode[(int)h->mode], in rdac_bus_attach()
809 lun_state[(int)h->lun_state]); in rdac_bus_attach()
811 sdev->handler_data = h; in rdac_bus_attach()
816 kref_put(&h->ctlr->kref, release_controller); in rdac_bus_attach()
820 kfree(h); in rdac_bus_attach()
826 struct rdac_dh_data *h = sdev->handler_data; in rdac_bus_detach() local
828 if (h->ctlr && h->ctlr->ms_queued) in rdac_bus_detach()
832 if (h->ctlr) in rdac_bus_detach()
833 kref_put(&h->ctlr->kref, release_controller); in rdac_bus_detach()
836 kfree(h); in rdac_bus_detach()