From: Trond Myklebust Date: Thu, 2 Feb 2017 17:26:38 +0000 (-0500) Subject: pNFS: Don't send LAYOUTGET on OPEN for read, if we already have cached data X-Git-Tag: v4.19~741^2~29 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=64294b08f9d27f83cbb0975250614864fa733bda;p=platform%2Fkernel%2Flinux-rpi3.git 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: Trond Myklebust --- diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c index d5dc97f..717cd95 100644 --- a/fs/nfs/pnfs.c +++ b/fs/nfs/pnfs.c @@ -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;