/* * Enable device. * used by dasdfmt after BIODASDDISABLE to retrigger blocksize detection */ static int dasd_ioctl_enable(struct block_device *bdev) { struct dasd_block *block = bdev->bd_disk->private_data; if (!capable(CAP_SYS_ADMIN)) return -EACCES; dasd_enable_device(block->base); /* Formatting the dasd device can change the capacity. */ mutex_lock(&bdev->bd_mutex); i_size_write(bdev->bd_inode, (loff_t)get_capacity(block->gdp) << 9); mutex_unlock(&bdev->bd_mutex); return 0; }
/* * Enable device. * used by dasdfmt after BIODASDDISABLE to retrigger blocksize detection */ static int dasd_ioctl_enable(struct block_device *bdev) { struct dasd_device *base; if (!capable(CAP_SYS_ADMIN)) return -EACCES; base = dasd_device_from_gendisk(bdev->bd_disk); if (!base) return -ENODEV; dasd_enable_device(base); /* Formatting the dasd device can change the capacity. */ mutex_lock(&bdev->bd_mutex); i_size_write(bdev->bd_inode, (loff_t)get_capacity(base->block->gdp) << 9); mutex_unlock(&bdev->bd_mutex); dasd_put_device(base); return 0; }