On Mon, Sep 11, 2023 at 06:46:41PM +0800, Shiyang Ruan wrote: > The agend should be "start + length - 1", then, blockcount should be > "end + 1 - start". Correct 2 calculation mistakes. > > Fixes: 5cf32f63b0f4 ("xfs: fix the calculation for "end" and "length"") > Signed-off-by: Shiyang Ruan <ruansy.fnst@xxxxxxxxxxx> /me notes that "agend" would be better named "range_agend" since it's not the end of the AG per se; it's the end of the dead region *within* an AG's agblock space. With that changed, Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> --D > --- > fs/xfs/xfs_notify_failure.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/xfs/xfs_notify_failure.c b/fs/xfs/xfs_notify_failure.c > index 4a9bbd3fe120..8b8ef776bdc3 100644 > --- a/fs/xfs/xfs_notify_failure.c > +++ b/fs/xfs/xfs_notify_failure.c > @@ -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), > + 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 = agend + 1 - ri_low.rm_startblock; > > error = xfs_rmap_query_range(cur, &ri_low, &ri_high, > xfs_dax_failure_fn, ¬ify); > -- > 2.42.0 >