/* Queue a request to the head of the device ccw_queue. Start the I/O if possible.  */
void dasd_add_request_head(struct dasd_ccw_req *cqr)
/* Queue a request to the head of the device ccw_queue. Start the I/O if possible.  */
void dasd_add_request_head(struct dasd_ccw_req *cqr)
{
	struct dasd_device *device;
	unsigned long flags;
	device = cqr->startdev;
	spin_lock_irqsave(get_ccwdev_lock(device->cdev), flags);
	cqr->status = DASD_CQR_QUEUED;
	list_add(&cqr->devlist, &device->ccw_queue);
	dasd_schedule_device_bh(device);
	spin_unlock_irqrestore(get_ccwdev_lock(device->cdev), flags);
}