mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
xfs: fix the calculation for "end" and "length"
[ Upstream commit 5cf32f63b0 ]
The value of "end" should be "start + length - 1".
Signed-off-by: Shiyang Ruan <ruansy.fnst@fujitsu.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Leah Rumancik <leah.rumancik@gmail.com>
Acked-by: Chandan Babu R <chandanbabu@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
4427e3d362
commit
0cc1922687
@@ -114,7 +114,8 @@ xfs_dax_notify_ddev_failure(
|
||||
int error = 0;
|
||||
xfs_fsblock_t fsbno = XFS_DADDR_TO_FSB(mp, daddr);
|
||||
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);
|
||||
|
||||
error = xfs_trans_alloc_empty(mp, &tp);
|
||||
@@ -210,7 +211,7 @@ xfs_dax_notify_failure(
|
||||
ddev_end = ddev_start + bdev_nr_bytes(mp->m_ddev_targp->bt_bdev) - 1;
|
||||
|
||||
/* Ignore the range out of filesystem area */
|
||||
if (offset + len < ddev_start)
|
||||
if (offset + len - 1 < ddev_start)
|
||||
return -ENXIO;
|
||||
if (offset > ddev_end)
|
||||
return -ENXIO;
|
||||
@@ -222,8 +223,8 @@ xfs_dax_notify_failure(
|
||||
len -= ddev_start - offset;
|
||||
offset = 0;
|
||||
}
|
||||
if (offset + len > ddev_end)
|
||||
len -= ddev_end - offset;
|
||||
if (offset + len - 1 > ddev_end)
|
||||
len = ddev_end - offset + 1;
|
||||
|
||||
return xfs_dax_notify_ddev_failure(mp, BTOBB(offset), BTOBB(len),
|
||||
mf_flags);
|
||||
|
||||
Reference in New Issue
Block a user