aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/linux-2.6/xfs_aops.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_aops.c')
-rw-r--r--fs/xfs/linux-2.6/xfs_aops.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c
index 49dec212da40..577d0b448732 100644
--- a/fs/xfs/linux-2.6/xfs_aops.c
+++ b/fs/xfs/linux-2.6/xfs_aops.c
@@ -1512,9 +1512,11 @@ __xfs_get_blocks(
1512 } 1512 }
1513 1513
1514 if (direct || size > (1 << inode->i_blkbits)) { 1514 if (direct || size > (1 << inode->i_blkbits)) {
1515 ASSERT(iomap.iomap_bsize - iomap.iomap_delta > 0); 1515 xfs_off_t iomap_delta = offset - iomap.iomap_offset;
1516
1517 ASSERT(iomap.iomap_bsize - iomap_delta > 0);
1516 offset = min_t(xfs_off_t, 1518 offset = min_t(xfs_off_t,
1517 iomap.iomap_bsize - iomap.iomap_delta, size); 1519 iomap.iomap_bsize - iomap_delta, size);
1518 bh_result->b_size = (ssize_t)min_t(xfs_off_t, LONG_MAX, offset); 1520 bh_result->b_size = (ssize_t)min_t(xfs_off_t, LONG_MAX, offset);
1519 } 1521 }
1520 1522