[U-Boot] [PATCH] Fix ext2/ext4 filesystem accesses beyond 2TiB

Sascha Silbe
2013-06-24T22:26:25Z

Frederic Leroy <fredo@starox.org> writes:

> From: Fr?d?ric Leroy <fredo@starox.org>
>
> With CONFIG_SYS_64BIT_LBA, lbaint_t gets defined as a 64-bit type,
> which is required to represent block numbers for storage devices that
> exceed 2TiB (the block size usually is 512B), e.g. recent hard drives
>
> We now use lbaint_t for partition offset to reflect the lbaint_t change,
> and access partitions beyond or crossing the 2.1TiB limit.
> This required changes to signature of ext4fs_devread(), and type of all
> variables relatives to block sector.
>
> ext2/ext4 fs uses logical block represented by a 32 bit value. Logical
> block is a multiple of device block sector. To avoid overflow problem
> when calling ext4fs_devread(), we need to cast the sector parameter.

Thanks for the patch!

Reading a file on an ext4 file system located on a partition starting
beyond the 2TiB limit on a SATA hard disk attached to a CuBox Pro
works fine now.

Tested-by: Sascha Silbe <t-uboot@infra-silbe.de>

You'll probably have to add your Signed-off-by before your patch can be
merged.

A minor nitpick: The limit is at 2TiB (2^41 Bytes), which is roughly
2.2TB (2.2 * 10^12 Bytes).

Sascha
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 489 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130625/9632c389/attachment.pgp>