From 40024fdbafdf3875a0950e8fee5dd8bf69ea6b6c Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Mon, 14 May 2012 10:55:09 -0400 Subject: [PATCH] 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" --- lib/ext2fs/unix_io.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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 -- 1.8.3.1