[PATCH 26/26] commands: parted: exit if block size if not 512
Ahmad Fatoum <[email protected]> Fri, 26 Jun 2026 10:42:37 +0200
| Newsgroups | org.infradead.lists.barebox |
|---|---|
| Message-ID | <[email protected]> |
While the partition parser can now deal with non-512-byte block sizes, the partition writer still needs some more love beyond just replacing SECTOR_SIZE/SECTOR_SHIFT. Until that is afforded, exit with a descriptive error message. Signed-off-by: Ahmad Fatoum <[email protected]> --- commands/createnv.c | 7 +++++++ commands/parted.c | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/commands/createnv.c b/commands/createnv.c index 6083ab7c2c8f..5d9dc5732c8a 100644 --- a/commands/createnv.c +++ b/commands/createnv.c @@ -69,6 +69,13 @@ static int do_createnv(int argc, char *argv[]) goto err; } + if (BLOCKSIZE(blk) != SECTOR_SIZE) { + printf("parted: device has block size of %u, but only 512 currently supported\n", + BLOCKSIZE(blk)); + ret = -ENOTSUPP; + goto err; + } + buf = xzalloc(2 * BLOCKSIZE(blk)); ret = cdev_read(cdev, buf, 2 * BLOCKSIZE(blk), 0, 0); diff --git a/commands/parted.c b/commands/parted.c index 3f531faaef3f..829796748827 100644 --- a/commands/parted.c +++ b/commands/parted.c @@ -392,6 +392,13 @@ static int do_parted(int argc, char *argv[]) goto err; } + if (BLOCKSIZE(blk) != SECTOR_SIZE) { + printf("parted: device has block size of %u, but only 512 currently supported\n", + BLOCKSIZE(blk)); + ret = -ENOTSUPP; + goto err; + } + argc -= 2; argv += 2; -- 2.47.3