Commit 83950d35 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe
Browse files

block: move the policy field to struct block_device



Move the policy field to struct block_device and rename it to the
more descriptive bd_read_only.  Also turn the field into a bool as it
is used as such.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent b309e993
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -696,7 +696,7 @@ static inline bool bio_check_ro(struct bio *bio, struct hd_struct *part)
{
	const int op = bio_op(bio);

	if (part->policy && op_is_write(op)) {
	if (part->bdev->bd_read_only && op_is_write(op)) {
		char b[BDEVNAME_SIZE];

		if (op_is_flush(bio->bi_opf) && !bio_sectors(bio))
+4 −4
Original line number Diff line number Diff line
@@ -1687,14 +1687,14 @@ void set_disk_ro(struct gendisk *disk, int flag)
	struct disk_part_iter piter;
	struct hd_struct *part;

	if (disk->part0.policy != flag) {
	if (disk->part0.bdev->bd_read_only != flag) {
		set_disk_ro_uevent(disk, flag);
		disk->part0.policy = flag;
		disk->part0.bdev->bd_read_only = flag;
	}

	disk_part_iter_init(&piter, disk, DISK_PITER_INCL_EMPTY);
	while ((part = disk_part_iter_next(&piter)))
		part->policy = flag;
		part->bdev->bd_read_only = flag;
	disk_part_iter_exit(&piter);
}

@@ -1704,7 +1704,7 @@ int bdev_read_only(struct block_device *bdev)
{
	if (!bdev)
		return 0;
	return bdev->bd_part->policy;
	return bdev->bd_read_only;
}

EXPORT_SYMBOL(bdev_read_only);
+1 −1
Original line number Diff line number Diff line
@@ -345,7 +345,7 @@ static int blkdev_roset(struct block_device *bdev, fmode_t mode,
		if (ret)
			return ret;
	}
	bdev->bd_part->policy = n;
	bdev->bd_read_only = n;
	return 0;
}

+2 −2
Original line number Diff line number Diff line
@@ -199,7 +199,7 @@ static ssize_t part_ro_show(struct device *dev,
			    struct device_attribute *attr, char *buf)
{
	struct hd_struct *p = dev_to_part(dev);
	return sprintf(buf, "%d\n", p->policy ? 1 : 0);
	return sprintf(buf, "%d\n", p->bdev->bd_read_only);
}

static ssize_t part_alignment_offset_show(struct device *dev,
@@ -420,7 +420,7 @@ static struct hd_struct *add_partition(struct gendisk *disk, int partno,
	bdev->bd_start_sect = start;
	bdev_set_nr_sectors(bdev, len);
	p->partno = partno;
	p->policy = get_disk_ro(disk);
	bdev->bd_read_only = get_disk_ro(disk);

	if (info) {
		err = -ENOMEM;
+1 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ struct block_device {
	sector_t		bd_start_sect;
	struct disk_stats __percpu *bd_stats;
	unsigned long		bd_stamp;
	bool			bd_read_only;	/* read-only policy */
	dev_t			bd_dev;
	int			bd_openers;
	struct inode *		bd_inode;	/* will die */
Loading