]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
NFSv4/flexfiles: fix to allocate mirror->dss before use
authorMike Snitzer <snitzer@kernel.org>
Tue, 7 Oct 2025 17:39:05 +0000 (13:39 -0400)
committerAnna Schumaker <anna.schumaker@oracle.com>
Mon, 13 Oct 2025 18:33:00 +0000 (14:33 -0400)
commit8db4a1d146f83c6bdb0f5b98c50c509ae8549827
tree6b9f9e4b91dcc1c5f5d5ba35cf4ce0a94d96add8
parent3a8660878839faadb4f1a6dd72c3179c1df56787
NFSv4/flexfiles: fix to allocate mirror->dss before use

Move mirror_array's dss_count initialization and dss allocation to
ff_layout_alloc_mirror(), just before the loop that initializes each
nfs4_ff_layout_ds_stripe's nfs_file_localio.

Also handle NULL return from kcalloc() and remove one level of indent
in ff_layout_alloc_mirror().

This commit fixes dangling nfsd_serv refcount issues seen when using
NFS LOCALIO and then attempting to stop the NFSD service.

Fixes: 20b1d75fb840 ("NFSv4/flexfiles: Add support for striped layouts")
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
fs/nfs/flexfilelayout/flexfilelayout.c