mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2024-11-24 14:06:15 +00:00
f9a70a20c5
Backport BLOCK OF support patch merged upstream and refresh pending BLOCK patches. This is a new way to declare partition table for BLOCK device (eMMC currently supported) with the use of DTS. Current pending patch are adapted to not cause regression with current downstream implementation of a similar functionality. Also enable the new OF_PARTITION config by default. Link: https://github.com/openwrt/openwrt/pull/16663 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
54 lines
1.8 KiB
Diff
54 lines
1.8 KiB
Diff
From 03cb793b26834ddca170ba87057c8f883772dd45 Mon Sep 17 00:00:00 2001
|
|
From: Christian Marangi <ansuelsmth@gmail.com>
|
|
Date: Thu, 3 Oct 2024 00:11:41 +0200
|
|
Subject: [PATCH 1/5] block: add support for defining read-only partitions
|
|
|
|
Add support for defining read-only partitions and complete support for
|
|
it in the cmdline partition parser as the additional "ro" after a
|
|
partition is scanned but never actually applied.
|
|
|
|
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
|
Reviewed-by: Christoph Hellwig <hch@lst.de>
|
|
Link: https://lore.kernel.org/r/20241002221306.4403-2-ansuelsmth@gmail.com
|
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
---
|
|
block/blk.h | 1 +
|
|
block/partitions/cmdline.c | 3 +++
|
|
block/partitions/core.c | 3 +++
|
|
3 files changed, 7 insertions(+)
|
|
|
|
--- a/block/blk.h
|
|
+++ b/block/blk.h
|
|
@@ -424,6 +424,7 @@ void blk_free_ext_minor(unsigned int min
|
|
#define ADDPART_FLAG_NONE 0
|
|
#define ADDPART_FLAG_RAID 1
|
|
#define ADDPART_FLAG_WHOLEDISK 2
|
|
+#define ADDPART_FLAG_READONLY 4
|
|
int bdev_add_partition(struct gendisk *disk, int partno, sector_t start,
|
|
sector_t length);
|
|
int bdev_del_partition(struct gendisk *disk, int partno);
|
|
--- a/block/partitions/cmdline.c
|
|
+++ b/block/partitions/cmdline.c
|
|
@@ -237,6 +237,9 @@ static int add_part(int slot, struct cmd
|
|
put_partition(state, slot, subpart->from >> 9,
|
|
subpart->size >> 9);
|
|
|
|
+ if (subpart->flags & PF_RDONLY)
|
|
+ state->parts[slot].flags |= ADDPART_FLAG_READONLY;
|
|
+
|
|
info = &state->parts[slot].info;
|
|
|
|
strscpy(info->volname, subpart->name, sizeof(info->volname));
|
|
--- a/block/partitions/core.c
|
|
+++ b/block/partitions/core.c
|
|
@@ -392,6 +392,9 @@ static struct block_device *add_partitio
|
|
goto out_del;
|
|
}
|
|
|
|
+ if (flags & ADDPART_FLAG_READONLY)
|
|
+ bdev->bd_read_only = true;
|
|
+
|
|
/* everything is up and running, commence */
|
|
err = xa_insert(&disk->part_tbl, partno, bdev, GFP_KERNEL);
|
|
if (err)
|