Skip to content

Commit e986468

Browse files
committed
NFSv4/flexfiles: Fix layout merge mirror check.
jira LE-4603 Rebuild_History Non-Buildable kernel-5.14.0-570.58.1.el9_6 commit-author Jonathan Curley <jcurley@purestorage.com> commit dd2fa82 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: 660d1eb ("pNFS/flexfile: Don't merge layout segments if the mirrors don't match") Signed-off-by: Jonathan Curley <jcurley@purestorage.com> Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> (cherry picked from commit dd2fa82) Signed-off-by: Jonathan Maple <jmaple@ciq.com>
1 parent d487d40 commit e986468

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

fs/nfs/flexfilelayout/flexfilelayout.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ ff_lseg_match_mirrors(struct pnfs_layout_segment *l1,
276276
struct pnfs_layout_segment *l2)
277277
{
278278
const struct nfs4_ff_layout_segment *fl1 = FF_LAYOUT_LSEG(l1);
279-
const struct nfs4_ff_layout_segment *fl2 = FF_LAYOUT_LSEG(l1);
279+
const struct nfs4_ff_layout_segment *fl2 = FF_LAYOUT_LSEG(l2);
280280
u32 i;
281281

282282
if (fl1->mirror_array_cnt != fl2->mirror_array_cnt)

0 commit comments

Comments
 (0)