]> git.sur5r.net Git - u-boot/commit
Fix ext2/ext4 filesystem accesses beyond 2TiB
authorFrederic Leroy <fredo@starox.org>
Wed, 26 Jun 2013 16:11:25 +0000 (18:11 +0200)
committerTom Rini <trini@ti.com>
Mon, 15 Jul 2013 21:06:13 +0000 (17:06 -0400)
commit04735e9c5578dd4f3584be5454b9779e8e5c2af9
tree5641d35f98ffda64ff900a8356639eeb88f320a5
parent0eb33ad253026d5a773854dd42b2a56937678aa9
Fix ext2/ext4 filesystem accesses beyond 2TiB

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.

Signed-off-by: Frédéric Leroy <fredo@starox.org>
12 files changed:
common/cmd_disk.c
disk/part_efi.c
disk/part_iso.c
fs/ext4/dev.c
fs/ext4/ext4_common.c
fs/ext4/ext4_journal.c
fs/ext4/ext4_write.c
fs/ext4/ext4fs.c
include/ext4fs.h
include/ext_common.h
include/ide.h
include/part.h