/* State and contents of ur devices can be changed by class D users issuing CP commands such as PURGE or TRANSFER, while the Linux guest is suspended. Also the Linux guest might be logged off, which causes all active spool files to be closed. So we cannot guarantee that spool files are still the same when the Linux guest is resumed. In order to avoid unpredictable results at resume time we simply refuse to suspend if a ur device node is open.  */
static int ur_pm_suspend(struct ccw_device *cdev)
/* State and contents of ur devices can be changed by class D users issuing CP commands such as PURGE or TRANSFER, while the Linux guest is suspended. Also the Linux guest might be logged off, which causes all active spool files to be closed. So we cannot guarantee that spool files are still the same when the Linux guest is resumed. In order to avoid unpredictable results at resume time we simply refuse to suspend if a ur device node is open.  */
static int ur_pm_suspend(struct ccw_device *cdev)
{
	struct urdev *urd = dev_get_drvdata(&cdev->dev);
	TRACE("ur_pm_suspend: cdev=%p\n", cdev);
	if (urd->open_flag) {
		pr_err("Unit record device %s is busy, %s refusing to "
		       "suspend.\n", dev_name(&cdev->dev), ur_banner);
		return -EBUSY;
	}
	return 0;
}