/* Releasing a block device means we sync() it, so that it can safely be forgotten about...  */
static irqreturn_t hd_interrupt(int irq, void *dev_id)
/* Releasing a block device means we sync() it, so that it can safely be forgotten about...  */
static irqreturn_t hd_interrupt(int irq, void *dev_id)
{
	void (*handler)(void) = do_hd;
	spin_lock(hd_queue->queue_lock);
	do_hd = NULL;
	del_timer(&device_timer);
	if (!handler)
		handler = unexpected_hd_interrupt;
	handler();
	spin_unlock(hd_queue->queue_lock);
	return IRQ_HANDLED;
}