]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
pNFS/filelayout: fix cheking if a layout is striped
authorSagi Grimberg <sagi@grimberg.me>
Wed, 13 May 2026 06:58:24 +0000 (09:58 +0300)
committerAnna Schumaker <anna.schumaker@hammerspace.com>
Mon, 8 Jun 2026 14:21:55 +0000 (10:21 -0400)
A layout can still be striped with num_fh = 1 as it is perfectly possible
that both MDS and DSs can handle the same filehandle. Hence check according
to stripe_count > 1, which is the correct check to begin with.

We should not be called with flseg->dsaddr = NULL, but if for some reason
we do, return our best guess with is flseg->num_fh > 1.

Fixes: a6b9d2fa0024 ("pNFS/filelayout: Fix coalescing test for single DS")
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Anna Schumaker <anna.schumaker@hammerspace.com>
fs/nfs/filelayout/filelayout.c

index f0f53f5dc87194573b2ab193f0b48e66e4cad6d8..72e20b56fbc7054c9bb7fc8c44633d6891458109 100644 (file)
@@ -778,6 +778,8 @@ filelayout_alloc_lseg(struct pnfs_layout_hdr *layoutid,
 static bool
 filelayout_lseg_is_striped(const struct nfs4_filelayout_segment *flseg)
 {
+       if (flseg->dsaddr)
+               return flseg->dsaddr->stripe_count > 1;
        return flseg->num_fh > 1;
 }