The iomap_delta field in struct xfs_iomap just contains the difference
between the offset passed to xfs_iomap and the iomap_offset. Just calculate
it in the only caller that cares.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Index: xfs/fs/xfs/linux-2.6/xfs_aops.c
===================================================================
--- xfs.orig/fs/xfs/linux-2.6/xfs_aops.c 2010-04-28 14:14:43.975254833
+0200
+++ xfs/fs/xfs/linux-2.6/xfs_aops.c 2010-04-28 14:14:47.332253927 +0200
@@ -1511,9 +1511,11 @@ __xfs_get_blocks(
}
if (direct || size > (1 << inode->i_blkbits)) {
- ASSERT(iomap.iomap_bsize - iomap.iomap_delta > 0);
+ xfs_off_t iomap_delta = offset - iomap.iomap_offset;
+
+ ASSERT(iomap.iomap_bsize - iomap_delta > 0);
offset = min_t(xfs_off_t,
- iomap.iomap_bsize - iomap.iomap_delta, size);
+ iomap.iomap_bsize - iomap_delta, size);
bh_result->b_size = (ssize_t)min_t(xfs_off_t, LONG_MAX, offset);
}
Index: xfs/fs/xfs/xfs_iomap.c
===================================================================
--- xfs.orig/fs/xfs/xfs_iomap.c 2010-04-28 14:14:43.976254414 +0200
+++ xfs/fs/xfs/xfs_iomap.c 2010-04-28 14:14:47.333254206 +0200
@@ -68,7 +68,6 @@ xfs_imap_to_bmap(
xfs_fsblock_t start_block;
iomapp->iomap_offset = XFS_FSB_TO_B(mp, imap->br_startoff);
- iomapp->iomap_delta = offset - iomapp->iomap_offset;
iomapp->iomap_bsize = XFS_FSB_TO_B(mp, imap->br_blockcount);
iomapp->iomap_flags = flags;
Index: xfs/fs/xfs/xfs_iomap.h
===================================================================
--- xfs.orig/fs/xfs/xfs_iomap.h 2010-04-28 14:14:43.982253995 +0200
+++ xfs/fs/xfs/xfs_iomap.h 2010-04-28 14:14:47.337253577 +0200
@@ -72,7 +72,6 @@ typedef struct xfs_iomap {
xfs_daddr_t iomap_bn; /* first 512B blk of mapping */
xfs_off_t iomap_offset; /* offset of mapping, bytes */
xfs_off_t iomap_bsize; /* size of mapping, bytes */
- xfs_off_t iomap_delta; /* offset into mapping, bytes */
iomap_flags_t iomap_flags;
} xfs_iomap_t;
|