Btrfs: Fix PAGE_CACHE_SHIFT shifts on 32 bit machines

Signed-off-by: Chris Mason <chris.mason@oracle.com>
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 0ba1cdb..5d10b64 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -111,7 +111,7 @@
 	struct btrfs_trans_handle *trans;
 	char *kaddr;
 	int ret;
-	u64 page_start = page->index << PAGE_CACHE_SHIFT;
+	u64 page_start = (u64)page->index << PAGE_CACHE_SHIFT;
 	size_t offset = start - page_start;
 
 	mutex_lock(&root->fs_info->fs_mutex);
@@ -160,7 +160,7 @@
 
 int btrfs_readpage_end_io_hook(struct page *page, u64 start, u64 end)
 {
-	size_t offset = start - (page->index << PAGE_CACHE_SHIFT);
+	size_t offset = start - ((u64)page->index << PAGE_CACHE_SHIFT);
 	struct inode *inode = page->mapping->host;
 	struct extent_map_tree *em_tree = &BTRFS_I(inode)->extent_tree;
 	char *kaddr;
@@ -688,7 +688,7 @@
 	char *kaddr;
 	int ret = 0;
 	struct extent_map_tree *em_tree = &BTRFS_I(inode)->extent_tree;
-	u64 page_start = page->index << PAGE_CACHE_SHIFT;
+	u64 page_start = (u64)page->index << PAGE_CACHE_SHIFT;
 	u64 page_end = page_start + PAGE_CACHE_SIZE - 1;
 
 	set_page_extent_mapped(page);
@@ -739,7 +739,7 @@
 			goto out;
 		}
 	}
-	page_start = page->index << PAGE_CACHE_SHIFT;
+	page_start = (u64)page->index << PAGE_CACHE_SHIFT;
 
 	ret = btrfs_cow_one_page(inode, page, offset);
 
@@ -1618,7 +1618,7 @@
 			goto out;
 		}
 
-		extent_offset = (page->index << PAGE_CACHE_SHIFT) -
+		extent_offset = ((u64)page->index << PAGE_CACHE_SHIFT) -
 			extent_start + page_offset;
 		copy_size = min_t(u64, PAGE_CACHE_SIZE - page_offset,
 				size - extent_offset);
@@ -1769,7 +1769,7 @@
 	lock_page(page);
 	wait_on_page_writeback(page);
 	size = i_size_read(inode);
-	page_start = page->index << PAGE_CACHE_SHIFT;
+	page_start = (u64)page->index << PAGE_CACHE_SHIFT;
 
 	if ((page->mapping != inode->i_mapping) ||
 	    (page_start > size)) {
@@ -2065,7 +2065,7 @@
 				goto out_unlock;
 			}
 		}
-		page_start = page->index << PAGE_CACHE_SHIFT;
+		page_start = (u64)page->index << PAGE_CACHE_SHIFT;
 		page_end = page_start + PAGE_CACHE_SIZE - 1;
 
 		lock_extent(em_tree, page_start, page_end, GFP_NOFS);