Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4533a947 authored by Trond Myklebust's avatar Trond Myklebust Committed by Sasha Levin
Browse files

pNFS: Fix a memory leak when attempted pnfs fails



[ Upstream commit 1ca018d28d96d07788474abf66a5f3e9594841f5 ]

pnfs_do_write() expects the call to pnfs_write_through_mds() to free the
pgio header and to release the layout segment before exiting. The problem
is that nfs_pgio_data_destroy() doesn't actually do this; it only frees
the memory allocated by nfs_generic_pgio().

Ditto for pnfs_do_read()...

Fix in both cases is to add a call to hdr->release(hdr).

Cc: stable@vger.kernel.org
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
parent f522f71a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1576,6 +1576,7 @@ pnfs_write_through_mds(struct nfs_pageio_descriptor *desc,
		desc->pg_recoalesce = 1;
	}
	nfs_pgio_data_destroy(hdr);
	hdr->release(hdr);
}

static enum pnfs_try_status
@@ -1692,6 +1693,7 @@ pnfs_read_through_mds(struct nfs_pageio_descriptor *desc,
		desc->pg_recoalesce = 1;
	}
	nfs_pgio_data_destroy(hdr);
	hdr->release(hdr);
}

/*