diff options
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_aops.c')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_aops.c | 6 |
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 | ||