2006-11-01 05:39:31

by Chris Wright

[permalink] [raw]
Subject: [PATCH 22/61] JFS: pageno needs to be long

-stable review patch. If anyone has any objections, please let us know.
------------------

From: Dave Kleikamp <[email protected]>

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 <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Chris Wright <[email protected]>

---
fs/jfs/jfs_imap.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--- linux-2.6.18.1.orig/fs/jfs/jfs_imap.c
+++ linux-2.6.18.1/fs/jfs/jfs_imap.c
@@ -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;

--