Commit 5cf32f63 authored by Shiyang Ruan's avatar Shiyang Ruan Committed by Darrick J. Wong

xfs: fix the calculation for "end" and "length"

The value of "end" should be "start + length - 1".
Signed-off-by: default avatarShiyang Ruan <ruansy.fnst@fujitsu.com>
Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
parent 75dc0345
...@@ -114,7 +114,8 @@ xfs_dax_notify_ddev_failure( ...@@ -114,7 +114,8 @@ xfs_dax_notify_ddev_failure(
int error = 0; int error = 0;
xfs_fsblock_t fsbno = XFS_DADDR_TO_FSB(mp, daddr); xfs_fsblock_t fsbno = XFS_DADDR_TO_FSB(mp, daddr);
xfs_agnumber_t agno = XFS_FSB_TO_AGNO(mp, fsbno); xfs_agnumber_t agno = XFS_FSB_TO_AGNO(mp, fsbno);
xfs_fsblock_t end_fsbno = XFS_DADDR_TO_FSB(mp, daddr + bblen); xfs_fsblock_t end_fsbno = XFS_DADDR_TO_FSB(mp,
daddr + bblen - 1);
xfs_agnumber_t end_agno = XFS_FSB_TO_AGNO(mp, end_fsbno); xfs_agnumber_t end_agno = XFS_FSB_TO_AGNO(mp, end_fsbno);
error = xfs_trans_alloc_empty(mp, &tp); error = xfs_trans_alloc_empty(mp, &tp);
...@@ -210,7 +211,7 @@ xfs_dax_notify_failure( ...@@ -210,7 +211,7 @@ xfs_dax_notify_failure(
ddev_end = ddev_start + bdev_nr_bytes(mp->m_ddev_targp->bt_bdev) - 1; ddev_end = ddev_start + bdev_nr_bytes(mp->m_ddev_targp->bt_bdev) - 1;
/* Ignore the range out of filesystem area */ /* Ignore the range out of filesystem area */
if (offset + len < ddev_start) if (offset + len - 1 < ddev_start)
return -ENXIO; return -ENXIO;
if (offset > ddev_end) if (offset > ddev_end)
return -ENXIO; return -ENXIO;
...@@ -222,8 +223,8 @@ xfs_dax_notify_failure( ...@@ -222,8 +223,8 @@ xfs_dax_notify_failure(
len -= ddev_start - offset; len -= ddev_start - offset;
offset = 0; offset = 0;
} }
if (offset + len > ddev_end) if (offset + len - 1 > ddev_end)
len -= ddev_end - offset; len = ddev_end - offset + 1;
return xfs_dax_notify_ddev_failure(mp, BTOBB(offset), BTOBB(len), return xfs_dax_notify_ddev_failure(mp, BTOBB(offset), BTOBB(len),
mf_flags); mf_flags);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment