mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2025-02-19 21:46:52 +00:00
generic: 5.15: fix FIT partition parser on block partitions
Using set_disk_ro() doesn't have the desired effect and instead of just setting the single partition to be read-only it affects the whole disk. Use the bd_read_only flag in struct block_device instead to mark a partition being read-only. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
parent
1c7e146f7e
commit
506ddce90f
@ -74,16 +74,25 @@
|
||||
#ifdef CONFIG_SGI_PARTITION
|
||||
sgi_partition,
|
||||
#endif
|
||||
@@ -598,6 +605,14 @@ static bool blk_add_partition(struct gen
|
||||
@@ -408,6 +415,11 @@ static struct block_device *add_partitio
|
||||
goto out_del;
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_FIT_PARTITION
|
||||
+ if (flags & ADDPART_FLAG_READONLY)
|
||||
+ bdev->bd_read_only = true;
|
||||
+#endif
|
||||
+
|
||||
/* everything is up and running, commence */
|
||||
err = xa_insert(&disk->part_tbl, partno, bdev, GFP_KERNEL);
|
||||
if (err)
|
||||
@@ -598,6 +610,11 @@ static bool blk_add_partition(struct gen
|
||||
(state->parts[p].flags & ADDPART_FLAG_RAID))
|
||||
md_autodetect_dev(part->bd_dev);
|
||||
|
||||
+#ifdef CONFIG_FIT_PARTITION
|
||||
+ if ((state->parts[p].flags & ADDPART_FLAG_ROOTDEV) && ROOT_DEV == 0)
|
||||
+ ROOT_DEV = part->bd_dev;
|
||||
+
|
||||
+ if (state->parts[p].flags & ADDPART_FLAG_READONLY)
|
||||
+ set_disk_ro(disk, true);
|
||||
+#endif
|
||||
+
|
||||
return true;
|
||||
|
Loading…
Reference in New Issue
Block a user