Пример #1
0
/*
 * Quiesce device.
 */
static int dasd_ioctl_resume(struct dasd_block *block)
{
    unsigned long flags;
    struct dasd_device *base;

    base = block->base;
    if (!capable (CAP_SYS_ADMIN))
        return -EACCES;

    DEV_MESSAGE(KERN_DEBUG, base, "%s", "resume IO on device");
    spin_lock_irqsave(get_ccwdev_lock(base->cdev), flags);
    base->stopped &= ~DASD_STOPPED_QUIESCE;
    spin_unlock_irqrestore(get_ccwdev_lock(base->cdev), flags);

    dasd_schedule_block_bh(block);
    return 0;
}
Пример #2
0
/*
 * Resume device.
 */
static int dasd_ioctl_resume(struct dasd_block *block)
{
	unsigned long flags;
	struct dasd_device *base;

	base = block->base;
	if (!capable (CAP_SYS_ADMIN))
		return -EACCES;

	pr_info("%s: I/O operations have been resumed "
		"on the DASD\n", dev_name(&base->cdev->dev));
	spin_lock_irqsave(get_ccwdev_lock(base->cdev), flags);
	base->stopped &= ~DASD_STOPPED_QUIESCE;
	spin_unlock_irqrestore(get_ccwdev_lock(base->cdev), flags);

	dasd_schedule_block_bh(block);
	return 0;
}