From: Daniel Golle Date: Tue, 29 Mar 2022 00:53:08 +0000 (+0100) Subject: generic: 5.15: fix FIT partition parser on block partitions X-Git-Tag: v23.05.0-rc1~3776 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=506ddce90fc99d08d7bc0c9ef4277756f54473bb;p=openwrt%2Fstaging%2Fhauke.git 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 --- diff --git a/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch b/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch index 560196ac72..5edacd5eae 100644 --- a/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch +++ b/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch @@ -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;