spin_unlock_irq(get_ccwdev_lock(device->cdev));
tape_do_io_interruptible(struct tape_device *device,			 struct tape_request *request){	wait_queue_head_t wq;	int rc;	init_waitqueue_head(&wq);	spin_lock_irq(get_ccwdev_lock(device->cdev));	/* Setup callback */	request->callback = __tape_wake_up_interruptible;	request->callback_data = &wq;	rc = __tape_do_io(device, request);	spin_unlock_irq(get_ccwdev_lock(device->cdev));	if (rc)		return rc;	/* Request added to the queue. Wait for its completion. */	rc = wait_event_interruptible(wq, (request->callback == NULL));	if (rc != -ERESTARTSYS)		/* Request finished normally. */		return request->rc;	/* Interrupted by a signal. We have to stop the current request. */	spin_lock_irq(get_ccwdev_lock(device->cdev));	rc = __tape_halt_io(device, request);	if (rc == 0) {		DBF_EVENT(3, "IO stopped on %08x\n", device->cdev_id);		rc = -ERESTARTSYS;	}	spin_unlock_irq(get_ccwdev_lock(device->cdev));	return rc;}