Lines Matching refs:sdev

76 scsi_dh_find_driver(struct scsi_device *sdev)  in scsi_dh_find_driver()  argument
80 if (scsi_device_tpgs(sdev)) in scsi_dh_find_driver()
84 if (!strncmp(sdev->vendor, b->vendor, strlen(b->vendor)) && in scsi_dh_find_driver()
85 !strncmp(sdev->model, b->model, strlen(b->model))) { in scsi_dh_find_driver()
126 static int scsi_dh_handler_attach(struct scsi_device *sdev, in scsi_dh_handler_attach() argument
134 error = scsi_dh->attach(sdev); in scsi_dh_handler_attach()
136 sdev_printk(KERN_ERR, sdev, "%s: Attach failed (%d)\n", in scsi_dh_handler_attach()
140 sdev->handler = scsi_dh; in scsi_dh_handler_attach()
149 static void scsi_dh_handler_detach(struct scsi_device *sdev) in scsi_dh_handler_detach() argument
151 sdev->handler->detach(sdev); in scsi_dh_handler_detach()
152 sdev_printk(KERN_NOTICE, sdev, "%s: Detached\n", sdev->handler->name); in scsi_dh_handler_detach()
153 module_put(sdev->handler->module); in scsi_dh_handler_detach()
163 struct scsi_device *sdev = to_scsi_device(dev); in store_dh_state() local
167 if (sdev->sdev_state == SDEV_CANCEL || in store_dh_state()
168 sdev->sdev_state == SDEV_DEL) in store_dh_state()
171 if (!sdev->handler) { in store_dh_state()
178 err = scsi_dh_handler_attach(sdev, scsi_dh); in store_dh_state()
184 sdev_printk(KERN_WARNING, sdev, in store_dh_state()
186 sdev->handler->name); in store_dh_state()
192 if (sdev->handler->activate) in store_dh_state()
193 err = sdev->handler->activate(sdev, NULL, NULL); in store_dh_state()
205 struct scsi_device *sdev = to_scsi_device(dev); in show_dh_state() local
207 if (!sdev->handler) in show_dh_state()
210 return snprintf(buf, 20, "%s\n", sdev->handler->name); in show_dh_state()
217 int scsi_dh_add_device(struct scsi_device *sdev) in scsi_dh_add_device() argument
223 err = device_create_file(&sdev->sdev_gendev, &scsi_dh_state_attr); in scsi_dh_add_device()
227 drv = scsi_dh_find_driver(sdev); in scsi_dh_add_device()
231 err = scsi_dh_handler_attach(sdev, devinfo); in scsi_dh_add_device()
235 void scsi_dh_release_device(struct scsi_device *sdev) in scsi_dh_release_device() argument
237 if (sdev->handler) in scsi_dh_release_device()
238 scsi_dh_handler_detach(sdev); in scsi_dh_release_device()
241 void scsi_dh_remove_device(struct scsi_device *sdev) in scsi_dh_remove_device() argument
243 device_remove_file(&sdev->sdev_gendev, &scsi_dh_state_attr); in scsi_dh_remove_device()
294 struct scsi_device *sdev; in get_sdev_from_queue() local
298 sdev = q->queuedata; in get_sdev_from_queue()
299 if (!sdev || !get_device(&sdev->sdev_gendev)) in get_sdev_from_queue()
300 sdev = NULL; in get_sdev_from_queue()
303 return sdev; in get_sdev_from_queue()
321 struct scsi_device *sdev; in scsi_dh_activate() local
324 sdev = get_sdev_from_queue(q); in scsi_dh_activate()
325 if (!sdev) { in scsi_dh_activate()
331 if (!sdev->handler) in scsi_dh_activate()
334 if (sdev->sdev_state == SDEV_CANCEL || in scsi_dh_activate()
335 sdev->sdev_state == SDEV_DEL) in scsi_dh_activate()
339 if (sdev->sdev_state == SDEV_OFFLINE) in scsi_dh_activate()
342 if (sdev->handler->activate) in scsi_dh_activate()
343 err = sdev->handler->activate(sdev, fn, data); in scsi_dh_activate()
346 put_device(&sdev->sdev_gendev); in scsi_dh_activate()
368 struct scsi_device *sdev; in scsi_dh_set_params() local
371 sdev = get_sdev_from_queue(q); in scsi_dh_set_params()
372 if (!sdev) in scsi_dh_set_params()
375 if (sdev->handler && sdev->handler->set_params) in scsi_dh_set_params()
376 err = sdev->handler->set_params(sdev, params); in scsi_dh_set_params()
377 put_device(&sdev->sdev_gendev); in scsi_dh_set_params()
390 struct scsi_device *sdev; in scsi_dh_attach() local
394 sdev = get_sdev_from_queue(q); in scsi_dh_attach()
395 if (!sdev) in scsi_dh_attach()
404 if (sdev->handler) { in scsi_dh_attach()
405 if (sdev->handler != scsi_dh) in scsi_dh_attach()
410 err = scsi_dh_handler_attach(sdev, scsi_dh); in scsi_dh_attach()
413 put_device(&sdev->sdev_gendev); in scsi_dh_attach()
429 struct scsi_device *sdev; in scsi_dh_attached_handler_name() local
432 sdev = get_sdev_from_queue(q); in scsi_dh_attached_handler_name()
433 if (!sdev) in scsi_dh_attached_handler_name()
436 if (sdev->handler) in scsi_dh_attached_handler_name()
437 handler_name = kstrdup(sdev->handler->name, gfp); in scsi_dh_attached_handler_name()
438 put_device(&sdev->sdev_gendev); in scsi_dh_attached_handler_name()