[XFS] pass full 64bit offsets to xfs_add_to_ioend

SGI-PV: 947118
SGI-Modid: xfs-linux-melb:xfs-kern:203828a

Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c
index 98d26c8..5628673 100644
--- a/fs/xfs/linux-2.6/xfs_aops.c
+++ b/fs/xfs/linux-2.6/xfs_aops.c
@@ -414,7 +414,7 @@
 xfs_add_to_ioend(
 	struct inode		*inode,
 	struct buffer_head	*bh,
-	unsigned int		p_offset,
+	xfs_off_t		offset,
 	unsigned int		type,
 	xfs_ioend_t		**result,
 	int			need_ioend)
@@ -423,10 +423,7 @@
 
 	if (!ioend || need_ioend || type != ioend->io_type) {
 		xfs_ioend_t	*previous = *result;
-		xfs_off_t	offset;
 
-		offset = (xfs_off_t)bh->b_page->index << PAGE_CACHE_SHIFT;
-		offset += p_offset;
 		ioend = xfs_alloc_ioend(inode, type);
 		ioend->io_offset = offset;
 		ioend->io_buffer_head = bh;
@@ -666,7 +663,6 @@
 	p_offset = p_offset ? roundup(p_offset, len) : PAGE_CACHE_SIZE;
 	page_dirty = p_offset / len;
 
-	p_offset = 0;
 	bh = head = page_buffers(page);
 	do {
 		if (offset >= end_offset)
@@ -694,7 +690,7 @@
 
 			xfs_map_at_offset(bh, offset, bbits, mp);
 			if (startio) {
-				xfs_add_to_ioend(inode, bh, p_offset,
+				xfs_add_to_ioend(inode, bh, offset,
 						type, ioendp, done);
 			} else {
 				set_buffer_dirty(bh);
@@ -707,7 +703,7 @@
 			type = 0;
 			if (buffer_mapped(bh) && all_bh && startio) {
 				lock_buffer(bh);
-				xfs_add_to_ioend(inode, bh, p_offset,
+				xfs_add_to_ioend(inode, bh, offset,
 						type, ioendp, done);
 				count++;
 				page_dirty--;
@@ -715,8 +711,7 @@
 				done = 1;
 			}
 		}
-	} while (offset += len, p_offset += len,
-		 (bh = bh->b_this_page) != head);
+	} while (offset += len, (bh = bh->b_this_page) != head);
 
 	if (uptodate && bh == head)
 		SetPageUptodate(page);
@@ -914,7 +909,7 @@
 				xfs_map_at_offset(bh, offset,
 						inode->i_blkbits, &iomap);
 				if (startio) {
-					xfs_add_to_ioend(inode, bh, p_offset,
+					xfs_add_to_ioend(inode, bh, offset,
 							type, &ioend,
 							!iomap_valid);
 				} else {
@@ -930,8 +925,7 @@
 
 			if (!test_and_set_bit(BH_Lock, &bh->b_state)) {
 				ASSERT(buffer_mapped(bh));
-				xfs_add_to_ioend(inode,
-						bh, p_offset, type,
+				xfs_add_to_ioend(inode, bh, offset, type,
 						&ioend, !iomap_valid);
 				page_dirty--;
 				count++;