xfs: correct calculation for agend and blockcount
[ Upstream commit 3c90c01e49342b166e5c90ec2c85b220be15a20e ]
The agend should be "start + length - 1", then, blockcount should be
"end + 1 - start". Correct 2 calculation mistakes.
Also, rename "agend" to "range_agend" because it's not the end of the AG
per se; it's the end of the dead region within an AG's agblock space.
Fixes: 5cf32f63b0f4 ("xfs: fix the calculation for "end" and "length"")
Signed-off-by: Shiyang Ruan <ruansy.fnst@fujitsu.com>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: Chandan Babu R <chandanbabu@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:
parent
d931b6c6a9
commit
8e2147f37f
1 changed files with 3 additions and 3 deletions
|
|
@ -126,8 +126,8 @@ xfs_dax_notify_ddev_failure(
|
|||
struct xfs_rmap_irec ri_low = { };
|
||||
struct xfs_rmap_irec ri_high;
|
||||
struct xfs_agf *agf;
|
||||
xfs_agblock_t agend;
|
||||
struct xfs_perag *pag;
|
||||
xfs_agblock_t range_agend;
|
||||
|
||||
pag = xfs_perag_get(mp, agno);
|
||||
error = xfs_alloc_read_agf(pag, tp, 0, &agf_bp);
|
||||
|
|
@ -148,10 +148,10 @@ xfs_dax_notify_ddev_failure(
|
|||
ri_high.rm_startblock = XFS_FSB_TO_AGBNO(mp, end_fsbno);
|
||||
|
||||
agf = agf_bp->b_addr;
|
||||
agend = min(be32_to_cpu(agf->agf_length),
|
||||
range_agend = min(be32_to_cpu(agf->agf_length) - 1,
|
||||
ri_high.rm_startblock);
|
||||
notify.startblock = ri_low.rm_startblock;
|
||||
notify.blockcount = agend - ri_low.rm_startblock;
|
||||
notify.blockcount = range_agend + 1 - ri_low.rm_startblock;
|
||||
|
||||
error = xfs_rmap_query_range(cur, &ri_low, &ri_high,
|
||||
xfs_dax_failure_fn, ¬ify);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue