/* Notes: We queue up an asynchronous "ALLOW MEDIUM REMOVAL" request on the head of the devices request queue, and continue.  */
static void scsi_eh_lock_door(struct scsi_device *sdev)
/* Notes: We queue up an asynchronous "ALLOW MEDIUM REMOVAL" request on the head of the devices request queue, and continue.  */
static void scsi_eh_lock_door(struct scsi_device *sdev)
{
	struct request *req;
	req = blk_get_request(sdev->request_queue, READ, GFP_KERNEL);
	req->cmd[0] = ALLOW_MEDIUM_REMOVAL;
	req->cmd[1] = 0;
	req->cmd[2] = 0;
	req->cmd[3] = 0;
	req->cmd[4] = SCSI_REMOVAL_PREVENT;
	req->cmd[5] = 0;
	req->cmd_len = COMMAND_SIZE(req->cmd[0]);
	req->cmd_type = REQ_TYPE_BLOCK_PC;
	req->cmd_flags |= REQ_QUIET;
	req->timeout = 10 * HZ;
	req->retries = 5;
	blk_execute_rq_nowait(req->q, NULL, req, 1, eh_lock_door_done);
}