From: Christoph Hellwig Date: Wed, 11 Jan 2006 09:49:16 +0000 (+1100) Subject: [XFS] pass full 64bit offsets to xfs_add_to_ioend X-Git-Tag: v2.6.16-rc1~185^2~12 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7336cea8c2737bbaf0296d67782f760828301d56;p=linux-2.6 [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 Signed-off-by: Nathan Scott --- diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index 98d26c8e05..5628673166 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c @@ -414,7 +414,7 @@ STATIC void 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 @@ xfs_add_to_ioend( 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 @@ xfs_convert_page( 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_convert_page( 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 @@ xfs_convert_page( 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 @@ xfs_convert_page( 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_page_state_convert( 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 @@ xfs_page_state_convert( 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++;