From: Theodore Ts'o Date: Mon, 14 May 2012 14:55:09 +0000 (-0400) Subject: libext2fs: fix bug in unix_io corrupted > 16TB file systems on 32-bit systems X-Git-Tag: v1.42.3~2 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=40024fdbafdf3875a0950e8fee5dd8bf69ea6b6c;p=tools%2Fe2fsprogs.git libext2fs: fix bug in unix_io corrupted > 16TB file systems on 32-bit systems The code was assuming that "unsigned long" was 64-bit, which of course it isn't on 32-bit systems. This caused blocks to get written to the wrong place. Signed-off-by: "Theodore Ts'o" --- diff --git a/lib/ext2fs/unix_io.c b/lib/ext2fs/unix_io.c index 2ce0563..e66b5c8 100644 --- a/lib/ext2fs/unix_io.c +++ b/lib/ext2fs/unix_io.c @@ -71,11 +71,11 @@ if ((struct)->magic != (code)) return (code) struct unix_cache { - char *buf; - unsigned long block; - int access_time; - unsigned dirty:1; - unsigned in_use:1; + char *buf; + unsigned long long block; + int access_time; + unsigned dirty:1; + unsigned in_use:1; }; #define CACHE_SIZE 8