Browse Source

[PATCH] reiserfs: fix 32-bit overflow in map_block_for_writepage()

I now see another overflow in reiserfs that should lead to data corruptions
with files that are bigger than 4G under certain circumstances when using
mmap.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Oleg Drokin 19 years ago
parent
commit
7729ac5efe
1 changed files with 1 additions and 1 deletions
  1. 1 1
      fs/reiserfs/inode.c

+ 1 - 1
fs/reiserfs/inode.c

@@ -2194,7 +2194,7 @@ static int map_block_for_writepage(struct inode *inode,
 	INITIALIZE_PATH(path);
 	int pos_in_item;
 	int jbegin_count = JOURNAL_PER_BALANCE_CNT;
-	loff_t byte_offset = (block << inode->i_sb->s_blocksize_bits) + 1;
+	loff_t byte_offset = ((loff_t)block << inode->i_sb->s_blocksize_bits)+1;
 	int retval;
 	int use_get_block = 0;
 	int bytes_copied = 0;