return -EBUSY;
        devinfo->cmnd[cmdinfo->uas_tag - 1] = NULL;
        uas_free_unsubmitted_urbs(cmnd);
-       cmnd->scsi_done(cmnd);
+       scsi_done(cmnd);
        return 0;
 }
 
                memcpy(cmnd->sense_buffer, usb_stor_sense_invalidCDB,
                       sizeof(usb_stor_sense_invalidCDB));
                cmnd->result = SAM_STAT_CHECK_CONDITION;
-               cmnd->scsi_done(cmnd);
+               scsi_done(cmnd);
                return 0;
        }
 
 
        if (devinfo->resetting) {
                set_host_byte(cmnd, DID_ERROR);
-               cmnd->scsi_done(cmnd);
+               scsi_done(cmnd);
                goto zombie;
        }
 
                return SCSI_MLQUEUE_DEVICE_BUSY;
        }
 
-       cmnd->scsi_done = done;
-
        memset(cmdinfo, 0, sizeof(*cmdinfo));
        cmdinfo->uas_tag = idx + 1; /* uas-tag == usb-stream-id, so 1 based */
        cmdinfo->state = SUBMIT_STATUS_URB | ALLOC_CMD_URB | SUBMIT_CMD_URB;
         */
        if (err == -ENODEV) {
                set_host_byte(cmnd, DID_ERROR);
-               cmnd->scsi_done(cmnd);
+               scsi_done(cmnd);
                goto zombie;
        }
        if (err) {
 
                if (srb->result == DID_ABORT << 16) {
 SkipForAbort:
                        usb_stor_dbg(us, "scsi command aborted\n");
-                       srb = NULL;     /* Don't call srb->scsi_done() */
+                       srb = NULL;     /* Don't call scsi_done() */
                }
 
                /*
                if (srb) {
                        usb_stor_dbg(us, "scsi cmd done, result=0x%x\n",
                                        srb->result);
-                       srb->scsi_done(srb);
+                       scsi_done(srb);
                }
        } /* for (;;) */