/* * 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; }
/* * 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; }