]> git.ipfire.org Git - thirdparty/linux.git/commit
NFS: Fix I/O request leakages
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Wed, 13 Feb 2019 14:21:38 +0000 (09:21 -0500)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Wed, 20 Feb 2019 20:14:20 +0000 (15:14 -0500)
commitf57dcf4c72113c745d83f1c65f7291299f65c14f
treec4a41e683e8eb2fc343a524b1a92d9e2421cda2f
parent2137397c92aec3713fa10be3c9b830f9a1674e60
NFS: Fix I/O request leakages

When we fail to add the request to the I/O queue, we currently leave it
to the caller to free the failed request. However since some of the
requests that fail are actually created by nfs_pageio_add_request()
itself, and are not passed back the caller, this leads to a leakage
issue, which can again cause page locks to leak.

This commit addresses the leakage by freeing the created requests on
error, using desc->pg_completion_ops->error_cleanup()

Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Fixes: a7d42ddb30997 ("nfs: add mirroring support to pgio layer")
Cc: stable@vger.kernel.org # v4.0: c18b96a1b862: nfs: clean up rest of reqs
Cc: stable@vger.kernel.org # v4.0: d600ad1f2bdb: NFS41: pop some layoutget
Cc: stable@vger.kernel.org # v4.0+
fs/nfs/pagelist.c