/* DESCRIPTION Block the given device request queue to prevent from further processing until the started timer has expired or an related interrupt was received.  */
static void dasd_3990_erp_block_queue(struct dasd_ccw_req *erp, int expires)
/* DESCRIPTION Block the given device request queue to prevent from further processing until the started timer has expired or an related interrupt was received.  */
static void dasd_3990_erp_block_queue(struct dasd_ccw_req *erp, int expires)
{
	struct dasd_device *device = erp->startdev;
	unsigned long flags;
	DBF_DEV_EVENT(DBF_INFO, device,
		    "blocking request queue for %is", expires/HZ);
	spin_lock_irqsave(get_ccwdev_lock(device->cdev), flags);
	dasd_device_set_stop_bits(device, DASD_STOPPED_PENDING);
	spin_unlock_irqrestore(get_ccwdev_lock(device->cdev), flags);
	erp->status = DASD_CQR_FILLED;
	if (erp->block)
		dasd_block_set_timer(erp->block, expires);
	else
		dasd_device_set_timer(device, expires);
}