Re: [PATCH 1/1] NFSv4/flexfiles: Fix layout merge mirror check.

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

 



On Mon, 2025-09-08 at 17:35 +0000, Jonathan Curley wrote:
> Typo in ff_lseg_match_mirrors makes the diff ineffective. This
> results
> in merge happening all the time. Merge happening all the time is
> problematic because it marks lsegs invalid. Marking lsegs invalid
> causes all outstanding IO to get restarted with EAGAIN and
> connections
> to get closed.
> 
> Closing connections constantly triggers race conditions in the RDMA
> implementation...
> 
> Fixes: 660d1eb22301c ("pNFS/flexfile: Don't merge layout segments if
> the mirrors don't match")
> Signed-off-by: Jonathan Curley <jcurley@xxxxxxxxxxxxxxx>
> ---
>  fs/nfs/flexfilelayout/flexfilelayout.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/nfs/flexfilelayout/flexfilelayout.c
> b/fs/nfs/flexfilelayout/flexfilelayout.c
> index 6d9aea16ef44..addf4357610e 100644
> --- a/fs/nfs/flexfilelayout/flexfilelayout.c
> +++ b/fs/nfs/flexfilelayout/flexfilelayout.c
> @@ -334,7 +334,7 @@ ff_lseg_match_mirrors(struct pnfs_layout_segment
> *l1,
>  		struct pnfs_layout_segment *l2)
>  {
>  	const struct nfs4_ff_layout_segment *fl1 =
> FF_LAYOUT_LSEG(l1);
> -	const struct nfs4_ff_layout_segment *fl2 =
> FF_LAYOUT_LSEG(l1);
> +	const struct nfs4_ff_layout_segment *fl2 =
> FF_LAYOUT_LSEG(l2);
>  	u32 i;
>  
>  	if (fl1->mirror_array_cnt != fl2->mirror_array_cnt)

D'oh! Well spotted... That definitely deserves a fixes tag.

Thanks!
  Trond

-- 
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trondmy@xxxxxxxxxx, trond.myklebust@xxxxxxxxxxxxxxx





[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux