JFS: pageno needs to be long
authorDave Kleikamp <shaggy@austin.ibm.com>
Mon, 4 Dec 2006 11:40:56 +0000 (12:40 +0100)
committerAdrian Bunk <bunk@stusta.de>
Mon, 4 Dec 2006 11:40:56 +0000 (12:40 +0100)
diRead and diWrite are representing the page number as an unsigned int.
This causes file system corruption on volumes larger than 16TB.

Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
fs/jfs/jfs_imap.c

index 4efa0d0eec39400245420305262ad424e8486103..27c7081aad4c7df378f9b8fa8f77d5351f16cb58 100644 (file)
@@ -318,7 +318,7 @@ int diRead(struct inode *ip)
        struct inomap *imap;
        int block_offset;
        int inodes_left;
-       uint pageno;
+       unsigned long pageno;
        int rel_inode;
 
        jfs_info("diRead: ino = %ld", ip->i_ino);
@@ -606,7 +606,7 @@ int diWrite(tid_t tid, struct inode *ip)
        int block_offset;
        int inodes_left;
        struct metapage *mp;
-       uint pageno;
+       unsigned long pageno;
        int rel_inode;
        int dioffset;
        struct inode *ipimap;