I'd like to suggest to change the partition code in
fs/partitions/check.c to initialize a newly detected partition's policy
field with that of the containing block device (see patch below).
My reasoning is that function set_disk_ro() in block/genhd.c
modifies the policy field (read-only indicator) of a disk and all
contained partitions. When a partition is detected after the call to
set_disk_ro(), the policy field of this partition will currently not
inherit the disk's policy field. This behavior poses a problem in cases
where a block device can be 'logically de- and reactivated' like e.g.
the s390 DASD driver because partition detection may run after the
policy field has been modified.
From: Peter Oberparleiter <[email protected]>
Initialize the policy field of partitions with that of the containing
block device.
Signed-off-by: Peter Oberparleiter <[email protected]>
---
diff -Naurp linux-2.6.17/fs/partitions/check.c linux-2.6.17b/fs/partitions/check.c
--- linux-2.6.17/fs/partitions/check.c 2006-06-18 03:49:35.000000000 +0200
+++ linux-2.6.17b/fs/partitions/check.c 2006-07-03 12:49:13.000000000 +0200
@@ -348,6 +348,7 @@ void add_partition(struct gendisk *disk,
p->start_sect = start;-
p->nr_sects = len;
p->partno = part;
+ p->policy = disk->policy;
devfs_mk_bdev(MKDEV(disk->major, disk->first_minor + part),
S_IFBLK|S_IRUSR|S_IWUSR,
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]