• Home
  • Raw
  • Download

Lines Matching refs:h

229 	struct rdac_dh_data	*h;  member
301 lun_table[qdata->h->lun] = 0x81; in rdac_failover_get()
362 static int get_lun_info(struct scsi_device *sdev, struct rdac_dh_data *h, in get_lun_info() argument
366 struct c8_inquiry *inqp = &h->inq.c8; in get_lun_info()
375 h->lun = inqp->lun[7]; /* Uses only the last byte */ in get_lun_info()
388 static int check_ownership(struct scsi_device *sdev, struct rdac_dh_data *h) in check_ownership() argument
392 struct c9_inquiry *inqp = &h->inq.c9; in check_ownership()
394 h->state = RDAC_STATE_ACTIVE; in check_ownership()
399 h->mode = RDAC_MODE_IOSHIP; /* LUN in IOSHIP mode */ in check_ownership()
401 h->mode = RDAC_MODE_AVT; /* LUN in AVT mode */ in check_ownership()
403 h->mode = RDAC_MODE; /* LUN in RDAC mode */ in check_ownership()
407 h->lun_state = RDAC_LUN_OWNED; in check_ownership()
410 h->lun_state = RDAC_LUN_UNOWNED; in check_ownership()
411 if (h->mode == RDAC_MODE) { in check_ownership()
412 h->state = RDAC_STATE_PASSIVE; in check_ownership()
420 h->preferred = RDAC_PREFERRED; in check_ownership()
423 h->preferred = RDAC_NON_PREFERRED; in check_ownership()
425 list_for_each_entry_rcu(tmp, &h->ctlr->dh_list, node) { in check_ownership()
438 struct rdac_dh_data *h, char *array_name, u8 *array_id) in initialize_controller() argument
441 struct c4_inquiry *inqp = &h->inq.c4; in initialize_controller()
452 h->ctlr = get_controller(index, array_name, array_id, sdev); in initialize_controller()
453 if (!h->ctlr) in initialize_controller()
456 h->sdev = sdev; in initialize_controller()
457 list_add_rcu(&h->node, &h->ctlr->dh_list); in initialize_controller()
465 static int set_mode_select(struct scsi_device *sdev, struct rdac_dh_data *h) in set_mode_select() argument
468 struct c2_inquiry *inqp = &h->inq.c2; in set_mode_select()
477 h->ctlr->use_ms10 = 1; in set_mode_select()
479 h->ctlr->use_ms10 = 0; in set_mode_select()
489 struct rdac_dh_data *h = sdev->handler_data; in mode_select_handle_sense() local
520 (char *) h->ctlr->array_name, h->ctlr->index, in mode_select_handle_sense()
532 struct rdac_dh_data *h = sdev->handler_data; in send_mode_select() local
555 (char *) h->ctlr->array_name, h->ctlr->index, in send_mode_select()
558 if (scsi_execute(sdev, cdb, DMA_TO_DEVICE, &h->ctlr->mode_select, in send_mode_select()
568 h->state = RDAC_STATE_ACTIVE; in send_mode_select()
571 (char *) h->ctlr->array_name, h->ctlr->index); in send_mode_select()
577 qdata->h->state = RDAC_STATE_ACTIVE; in send_mode_select()
595 qdata->h = sdev->handler_data; in queue_mode_select()
599 ctlr = qdata->h->ctlr; in queue_mode_select()
614 struct rdac_dh_data *h = sdev->handler_data; in rdac_activate() local
618 err = check_ownership(sdev, h); in rdac_activate()
622 switch (h->mode) { in rdac_activate()
624 if (h->lun_state == RDAC_LUN_UNOWNED) in rdac_activate()
628 if ((h->lun_state == RDAC_LUN_UNOWNED) && in rdac_activate()
629 (h->preferred == RDAC_PREFERRED)) in rdac_activate()
649 struct rdac_dh_data *h = sdev->handler_data; in rdac_prep_fn() local
651 if (h->state != RDAC_STATE_ACTIVE) { in rdac_prep_fn()
662 struct rdac_dh_data *h = sdev->handler_data; in rdac_check_sense() local
666 (char *) h->ctlr->array_name, h->ctlr->index, in rdac_check_sense()
703 h->state = RDAC_STATE_PASSIVE; in rdac_check_sense()
726 struct rdac_dh_data *h; in rdac_bus_attach() local
731 h = kzalloc(sizeof(*h) , GFP_KERNEL); in rdac_bus_attach()
732 if (!h) in rdac_bus_attach()
734 h->lun = UNINITIALIZED_LUN; in rdac_bus_attach()
735 h->state = RDAC_STATE_ACTIVE; in rdac_bus_attach()
737 err = get_lun_info(sdev, h, array_name, array_id); in rdac_bus_attach()
741 err = initialize_controller(sdev, h, array_name, array_id); in rdac_bus_attach()
745 err = check_ownership(sdev, h); in rdac_bus_attach()
749 err = set_mode_select(sdev, h); in rdac_bus_attach()
755 RDAC_NAME, h->lun, mode[(int)h->mode], in rdac_bus_attach()
756 lun_state[(int)h->lun_state]); in rdac_bus_attach()
758 sdev->handler_data = h; in rdac_bus_attach()
763 kref_put(&h->ctlr->kref, release_controller); in rdac_bus_attach()
767 kfree(h); in rdac_bus_attach()
773 struct rdac_dh_data *h = sdev->handler_data; in rdac_bus_detach() local
775 if (h->ctlr && h->ctlr->ms_queued) in rdac_bus_detach()
779 if (h->ctlr) { in rdac_bus_detach()
780 list_del_rcu(&h->node); in rdac_bus_detach()
781 kref_put(&h->ctlr->kref, release_controller); in rdac_bus_detach()
786 kfree(h); in rdac_bus_detach()