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

Commit 64294b08 authored by Trond Myklebust's avatar Trond Myklebust Committed by Trond Myklebust
Browse files

pNFS: Don't send LAYOUTGET on OPEN for read, if we already have cached data



If we're only opening the file for reading, and the file is empty and/or
we already have cached data, then heuristically optimise away the
LAYOUTGET.

Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent 8dc96566
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -2046,6 +2046,11 @@ static void _lgopen_prepare_attached(struct nfs4_opendata *data,
	struct nfs4_layoutget *lgp;
	struct pnfs_layout_hdr *lo;

	/* Heuristic: don't send layoutget if we have cached data */
	if (rng.iomode == IOMODE_READ &&
	   (i_size_read(ino) == 0 || ino->i_mapping->nrpages != 0))
		return;

	lo = _pnfs_grab_empty_layout(ino, ctx);
	if (!lo)
		return;