From: Andrew Morton Cc: Fengguang Wu Cc: Peter Zijlstra Cc: Rusty Russell Signed-off-by: Andrew Morton --- fs/ext3/dir.c | 2 +- fs/ext4/dir.c | 2 +- fs/splice.c | 2 +- mm/filemap.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff -puN fs/ext3/dir.c~readahead-combine-file_ra_stateprev_index-prev_offset-into-prev_pos-fix-2 fs/ext3/dir.c --- a/fs/ext3/dir.c~readahead-combine-file_ra_stateprev_index-prev_offset-into-prev_pos-fix-2 +++ a/fs/ext3/dir.c @@ -143,7 +143,7 @@ static int ext3_readdir(struct file * fi sb->s_bdev->bd_inode->i_mapping, &filp->f_ra, filp, index, 1); - filp->f_ra.prev_pos = index << PAGE_CACHE_SHIFT; + filp->f_ra.prev_pos = (loff_t)index << PAGE_CACHE_SHIFT; bh = ext3_bread(NULL, inode, blk, 0, &err); } diff -puN fs/ext4/dir.c~readahead-combine-file_ra_stateprev_index-prev_offset-into-prev_pos-fix-2 fs/ext4/dir.c --- a/fs/ext4/dir.c~readahead-combine-file_ra_stateprev_index-prev_offset-into-prev_pos-fix-2 +++ a/fs/ext4/dir.c @@ -142,7 +142,7 @@ static int ext4_readdir(struct file * fi sb->s_bdev->bd_inode->i_mapping, &filp->f_ra, filp, index, 1); - filp->f_ra.prev_pos = index << PAGE_CACHE_SHIFT; + filp->f_ra.prev_pos = (loff_t)index << PAGE_CACHE_SHIFT; bh = ext4_bread(NULL, inode, blk, 0, &err); } diff -puN fs/splice.c~readahead-combine-file_ra_stateprev_index-prev_offset-into-prev_pos-fix-2 fs/splice.c --- a/fs/splice.c~readahead-combine-file_ra_stateprev_index-prev_offset-into-prev_pos-fix-2 +++ a/fs/splice.c @@ -447,7 +447,7 @@ fill_it: */ while (page_nr < nr_pages) page_cache_release(pages[page_nr++]); - in->f_ra.prev_pos = index << PAGE_CACHE_SHIFT; + in->f_ra.prev_pos = (loff_t)index << PAGE_CACHE_SHIFT; if (spd.nr_pages) return splice_to_pipe(pipe, &spd); diff -puN mm/filemap.c~readahead-combine-file_ra_stateprev_index-prev_offset-into-prev_pos-fix-2 mm/filemap.c --- a/mm/filemap.c~readahead-combine-file_ra_stateprev_index-prev_offset-into-prev_pos-fix-2 +++ a/mm/filemap.c @@ -1059,7 +1059,7 @@ out: _ra->prev_pos <<= PAGE_CACHE_SHIFT; _ra->prev_pos |= prev_offset; - *ppos = ((loff_t) index << PAGE_CACHE_SHIFT) + offset; + *ppos = ((loff_t)index << PAGE_CACHE_SHIFT) + offset; if (cached_page) page_cache_release(cached_page); if (filp) _