Fix readonly "policy" use in gendisk/hd_struct and drivers
Subsystems (2)
PATCH 1/1 Fix readonly "policy" use in gendisk/hd_struct and drivers
This modifies the gendisk and hd_struct structs to replace "policy" with "readonly" (as that's the only use for this field). It also introduces a new function disk_read_only, which behaves like the corresponding device functions do.
Signed-off-by Jon Masters <[email protected]>
drivers/block/genhd.c +18 -8
@@ -655,22 +655,22 @@EXPORT_SYMBOL (put_disk); -void set_device_ro (struct block_device *bdev,int flag) +void set_device_ro (struct block_device *bdev,int state) {if (bdev->bd_contains != bdev) - bdev->bd_part->policy = flag; + bdev->bd_part->readonly = state;else - bdev->bd_disk->policy = flag; + bdev->bd_disk->readonly = state; }EXPORT_SYMBOL (set_device_ro); -void set_disk_ro (struct gendisk *disk,int flag) +void set_disk_ro (struct gendisk *disk,int state) {int i; - disk->policy = flag; + disk->readonly = state;for (i =0 ; i < disk->minors -1 ; i++) -if (disk->part[i]) disk->part[i]->policy = flag; +if (disk->part[i]) disk->part[i]->readonly = state; }EXPORT_SYMBOL (set_disk_ro);
@@ -680,13 +680,23 @@if (!bdev)return 0 ;else if (bdev->bd_contains != bdev) -return bdev->bd_part->policy; +return bdev->bd_part->readonly;else -return bdev->bd_disk->policy; +return bdev->bd_disk->readonly; }EXPORT_SYMBOL (bdev_read_only); +int disk_read_only (struct gendisk *disk) +{ +if (!disk) +return 0 ; + +return (disk->readonly); +} + +EXPORT_SYMBOL (disk_read_only); +int invalidate_partition (struct gendisk *disk,int index) {int res =0 ;
drivers/ide/ide-cd.c +3 -2
@@ -313,7 +313,7 @@#include <linux/cdrom.h> #include <linux/ide.h> #include <linux/completion.h> - +#include <scsi/scsi.h> /* For SCSI -> ATAPI command conversion */ #include <asm/irq.h>
@@ -1873,7 +1873,8 @@/* * disk has become write protected */ -if (g->policy) { + +if (disk_read_only (g)) {cdrom_end_request (drive,0 );return ide_stopped; }
drivers/md/dm-ioctl.c +1 -1
@@ -538,7 +538,7 @@ }else param->open_count =-1 ; -if (disk->policy) +if (disk_read_only (disk)) param->flags |=DM_READONLY_FLAG ; param->event_nr =dm_get_event_nr (md);
include/linux/genhd.h +5 -4
@@ -79,7 +79,7 @@sector_t nr_sects;struct kobject kobj;unsigned reads, read_sectors, writes, write_sectors; -int policy, partno; +int readonly, partno; };#define GENHD_FL_REMOVABLE 1
@@ -116,7 +116,7 @@struct kobject kobj;struct timer_rand_state *random; -int policy; +int readonly;/* needed for underlying media */ atomic_t sync_io;/* RAID */ unsigned long stamp, stamp_idle;
@@ -230,8 +230,9 @@extern void unlink_gendisk (struct gendisk *gp);extern struct gendisk *get_gendisk (dev_t dev,int *part); -extern void set_device_ro (struct block_device *bdev,int flag); -extern void set_disk_ro (struct gendisk *disk,int flag); +extern void set_device_ro (struct block_device *bdev,int state); +extern void set_disk_ro (struct gendisk *disk,int state); +extern int disk_read_only (struct gendisk *disk);/* drivers/char/random.c */ extern void add_disk_randomness (struct gendisk *disk);