[PATCH] Revert "fs: ext4: check the minimal partition size to mount"
Patrick DELAUNAY
patrick.delaunay at foss.st.com
Wed Oct 4 13:57:38 CEST 2023
Hi,
On 9/30/23 22:42, Sean Anderson wrote:
> This check breaks small partitions (under 1024 blocks) because part_length
> is in units of part.blksz and not bytes. Given the purpose of this
> function, we really want to make sure the partition is SUPERBLOCK_START +
> SUPERBLOCK_SIZE (2048) bytes so we can call ext4_read_superblock without
> error.
>
> The obvious solution is to convert callers from things like
>
> ext4fs_mount(part_info.size)
>
> to
>
> ext4fs_mount(part_info.size * part_info.blksz);
>
> However, I'm not really a fan of the bloat that would cause, especially
> since the error is now suppressed. I think the best course of action here
> is to just revert the patch.
>
> This reverts commit 9905cae65e03335aefcb1ebfab5b7ee62d89f64e.
>
> Signed-off-by: Sean Anderson <seanga2 at gmail.com>
> ---
>
> fs/ext4/ext4_common.c | 4 ----
> 1 file changed, 4 deletions(-)
>
> diff --git a/fs/ext4/ext4_common.c b/fs/ext4/ext4_common.c
> index 9a9c520e22c..f50de7c089e 100644
> --- a/fs/ext4/ext4_common.c
> +++ b/fs/ext4/ext4_common.c
> @@ -2373,10 +2373,6 @@ int ext4fs_mount(unsigned part_length)
> struct ext2_data *data;
> int status;
> struct ext_filesystem *fs = get_fs();
> -
> - if (part_length < SUPERBLOCK_SIZE)
> - return 0;
> -
> data = zalloc(SUPERBLOCK_SIZE);
> if (!data)
> return 0;
Agreed, I introduced error for part size in parameter
(in blk multiple even if after dev read if done after with bytes size)
And with caller change (part_info.size * part_info.blksz) we have risk
of overflow for large ex4 partition.
minor remark: "part_length" is no more used....
it can be removed to avoid warining ?
include/ext4fs.h:149:int ext4fs_mount(void);
or use the tag "__always_unused":
int ext4fs_mount(unsigned __always_unused part_length)
{
With the remarks:
Reviewed-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
Thanks
Patrick
More information about the U-Boot
mailing list