int index, quirks;
        int retval;
        struct Scsi_Host *host = aac->scsi_host_ptr;
-       struct scsi_device *dev;
        int jafo = 0;
        int bled;
        u64 dmamask;
         */
        scsi_host_complete_all_commands(host, DID_RESET);
 
-       /*
-        * Any Device that was already marked offline needs to be marked
-        * running
-        */
-       __shost_for_each_device(dev, host) {
-               if (!scsi_device_online(dev))
-                       scsi_device_set_state(dev, SDEV_RUNNING);
-       }
        retval = 0;
-
 out:
        aac->in_reset = 0;
 
         * target (block maximum 60 seconds). Although not necessary,
         * it does make us a good storage citizen.
         */
-       scsi_block_requests(host);
+       scsi_host_block(host);
 
        /* Quiesce build, flush cache, write through mode */
        if (forced < 2)
        retval = _aac_reset_adapter(aac, bled, reset_type);
        spin_unlock_irqrestore(host->host_lock, flagv);
 
-       scsi_unblock_requests(host);
+       retval = scsi_host_unblock(host, SDEV_RUNNING);
 
        if ((forced < 2) && (retval == -ENODEV)) {
                /* Unwind aac_send_shutdown() IOP_RESET unsupported/disabled */
 
        struct Scsi_Host *shost = pci_get_drvdata(pdev);
        struct aac_dev *aac = (struct aac_dev *)shost->hostdata;
 
-       scsi_block_requests(shost);
+       scsi_host_block(shost);
        aac_cancel_rescan_worker(aac);
        aac_send_shutdown(aac);
 
        * aac_send_shutdown() to block ioctls from upperlayer
        */
        aac->adapter_shutdown = 0;
-       scsi_unblock_requests(shost);
+       scsi_host_unblock(shost, SDEV_RUNNING);
 
        return 0;
 
 static void aac_shutdown(struct pci_dev *dev)
 {
        struct Scsi_Host *shost = pci_get_drvdata(dev);
-       scsi_block_requests(shost);
+
+       scsi_host_block(shost);
        __aac_shutdown((struct aac_dev *)shost->hostdata);
 }
 
        case pci_channel_io_frozen:
                aac->handle_pci_error = 1;
 
-               scsi_block_requests(aac->scsi_host_ptr);
+               scsi_host_block(shost);
                aac_cancel_rescan_worker(aac);
                scsi_host_complete_all_commands(shost, DID_NO_CONNECT);
                aac_release_resources(aac);
 static void aac_pci_resume(struct pci_dev *pdev)
 {
        struct Scsi_Host *shost = pci_get_drvdata(pdev);
-       struct scsi_device *sdev = NULL;
        struct aac_dev *aac = (struct aac_dev *)shost_priv(shost);
 
        if (aac_adapter_ioremap(aac, aac->base_size)) {
        aac->adapter_shutdown = 0;
        aac->handle_pci_error = 0;
 
-       shost_for_each_device(sdev, shost)
-               if (sdev->sdev_state == SDEV_OFFLINE)
-                       sdev->sdev_state = SDEV_RUNNING;
-       scsi_unblock_requests(aac->scsi_host_ptr);
+       scsi_host_unblock(shost, SDEV_RUNNING);
        aac_scan_host(aac);
        pci_save_state(pdev);