]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - fs/ext4/dev.c
Fix ext2/ext4 filesystem accesses beyond 2TiB
[people/ms/u-boot.git] / fs / ext4 / dev.c
index 81b7633b59cdc181cf20abd4ffb209d85d0aa37c..2cd182cb15c8a863eb8817693e7385d113438fa9 100644 (file)
@@ -42,7 +42,7 @@
 #include <ext_common.h>
 #include "ext4_common.h"
 
-unsigned long part_offset;
+lbaint_t part_offset;
 
 static block_dev_desc_t *ext4fs_block_dev_desc;
 static disk_partition_t *part_info;
@@ -58,7 +58,7 @@ void ext4fs_set_blk_dev(block_dev_desc_t *rbdd, disk_partition_t *info)
                get_fs()->dev_desc->log2blksz;
 }
 
-int ext4fs_devread(int sector, int byte_offset, int byte_len, char *buf)
+int ext4fs_devread(lbaint_t sector, int byte_offset, int byte_len, char *buf)
 {
        unsigned block_len;
        int log2blksz = ext4fs_block_dev_desc->log2blksz;
@@ -74,7 +74,8 @@ int ext4fs_devread(int sector, int byte_offset, int byte_len, char *buf)
        if ((sector < 0) ||
            ((sector + ((byte_offset + byte_len - 1) >> log2blksz))
             >= part_info->size)) {
-               printf("%s read outside partition %d\n", __func__, sector);
+               printf("%s read outside partition " LBAFU "\n", __func__,
+                      sector);
                return 0;
        }
 
@@ -82,7 +83,7 @@ int ext4fs_devread(int sector, int byte_offset, int byte_len, char *buf)
        sector += byte_offset >> log2blksz;
        byte_offset &= ext4fs_block_dev_desc->blksz - 1;
 
-       debug(" <%d, %d, %d>\n", sector, byte_offset, byte_len);
+       debug(" <" LBAFU ", %d, %d>\n", sector, byte_offset, byte_len);
 
        if (byte_offset != 0) {
                /* read first part which isn't aligned with start of sector */