From: Maud Spierings <maud_spierings@hotmail.com>
To: Sascha Hauer <s.hauer@pengutronix.de>,
Maud Spierings via B4 Relay
<devnull+maud_spierings.hotmail.com@kernel.org>
Cc: BAREBOX <barebox@lists.infradead.org>
Subject: Re: [PATCH] parted: add max option to mkpart <end>
Date: Mon, 20 Oct 2025 10:23:49 +0200 [thread overview]
Message-ID: <AM7P189MB1009C465358EAB7C01423495E3F5A@AM7P189MB1009.EURP189.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <aPXv11IxywXgokOk@pengutronix.de>
Hi Sascha,
On 10/20/25 10:16, Sascha Hauer wrote:
> Hi Maud,
>
> On Sun, Oct 19, 2025 at 05:07:06PM +0200, Maud Spierings via B4 Relay wrote:
>> From: Maud Spierings <maud_spierings@hotmail.com>
>>
>> Add the option to specify "max" as the end location, this will fill the
>> block device up to the end of its available space.
>>
>> A secondary effect is that it is now possible to use two different size
>> units for start and end
>>
>> mkpart root ext4 66MiB 3866111KiB
>>
>> previously it would read 66MiB as 66KiB as it only used the last read
>> unit.
>
> Uh, yes, that's a bug. Thanks for fixing this.
>
>> diff --git a/commands/parted.c b/commands/parted.c
>> index 7ec56da4c15f..0e858eb881ba 100644
>> --- a/commands/parted.c
>> +++ b/commands/parted.c
>> @@ -138,6 +138,10 @@ static int do_mkpart(struct block_device *blk, int argc, char *argv[])
>> int ret;
>> uint64_t mult;
>>
>> + pdesc = pdesc_get(blk);
>> + if (!pdesc)
>> + return -EINVAL;
>> +
>> if (argc < 5) {
>> printf("Error: Missing required arguments\n");
>> return -EINVAL;
>> @@ -150,40 +154,51 @@ static int do_mkpart(struct block_device *blk, int argc, char *argv[])
>> if (ret)
>> return ret;
>>
>> - ret = parted_strtoull(argv[4], &end, &mult);
>> - if (ret)
>> - return ret;
>> -
>> if (!mult)
>> mult = gunit;
>> -
>> start *= mult;
>> - end *= mult;
>>
>> - /* If not on sector boundaries move start up and end down */
>> + /* If not on sector boundaries round start up */
>> start = ALIGN(start, SZ_1M);
>> - end = ALIGN_DOWN(end, SZ_1M);
>
> I am not sure we need the alignment of the end at all. I can imagine
> that it helps the storage device to align the start of a partition, but
> the end shouldn't really matter.
>
> Maybe we should remove the end alignment because with this patch the
> ending becomes inconsistent. It will align down to 1MiB boundary when
> the size is specified, but will use an unaligned ending with size =
> "max".
>
> Better drop the end alignment entirely for more consistency.>>
>> /* convert to LBA */
>> start >>= SECTOR_SHIFT;
>> - end >>= SECTOR_SHIFT;
>> +
>> + if (!strcmp(argv[4], "max")) {
>> + /* gpt requires 34 blocks at the end */
>> + if (pdesc->parser->type == filetype_gpt)
>> + end = blk->num_blocks - 35;
>> + else if (pdesc->parser->type == filetype_mbr)
>> + end = blk->num_blocks - 1;
>> + else
>> + return -ENOSYS;
>> + } else if (!(ret = parted_strtoull(argv[4], &end, &mult))) {
>
> Rewrite to:
>
> } else {
> ret = parted_strtoull(argv[4], &end, &mult);
> if (ret)
> return ret;
> ...
> }
>
> It solves the checkpatch warning and is easier to read IMO.
>
Will do, thanks for the review!
Kind regards,
Maud
prev parent reply other threads:[~2025-10-20 15:16 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-19 15:07 Maud Spierings via B4 Relay
2025-10-20 8:16 ` Sascha Hauer
2025-10-20 8:23 ` Maud Spierings [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=AM7P189MB1009C465358EAB7C01423495E3F5A@AM7P189MB1009.EURP189.PROD.OUTLOOK.COM \
--to=maud_spierings@hotmail.com \
--cc=barebox@lists.infradead.org \
--cc=devnull+maud_spierings.hotmail.com@kernel.org \
--cc=s.hauer@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox