Re: [PATCH v2] xfs: correct calculation for agend and blockcount

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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, &notify);
> -- 
> 2.42.0
> 



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux