return -EINVAL;
if (!capable(CAP_SYS_ADMIN))
return -EACCES;
- if (bdev->bd_part_count)
+ if (bdev->bd_disk->open_partitions)
return -EBUSY;
/*
return -ENXIO;
rescan:
- if (bdev->bd_part_count)
+ if (disk->open_partitions)
return -EBUSY;
sync_blockdev(bdev);
invalidate_bdev(bdev);
if (!bdev_nr_sectors(part))
goto out_blkdev_put;
- whole->bd_part_count++;
+ disk->open_partitions++;
set_init_blocksize(part);
if (part->bd_bdi == &noop_backing_dev_info)
part->bd_bdi = bdi_get(disk->queue->backing_dev_info);
if (--part->bd_openers)
return;
blkdev_flush_mapping(part);
- whole->bd_part_count--;
+ whole->bd_disk->open_partitions--;
blkdev_put_whole(whole, mode);
bdput(whole);
}
#endif
struct kobject *bd_holder_dir;
u8 bd_partno;
- /* number of times partitions within this device have been opened. */
- unsigned bd_part_count;
-
spinlock_t bd_size_lock; /* for bd_inode->i_size updates */
struct gendisk * bd_disk;
struct backing_dev_info *bd_bdi;