diff options
author | Trond Myklebust <trond.myklebust@hammerspace.com> | 2019-02-13 17:21:38 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-03-23 15:19:52 +0300 |
commit | 0da4596d67565ba6940c2e9bd4ddae555b5524d8 (patch) | |
tree | 8d3a2563836e6aac85cbdaf12c18158fd651bb61 /fs/pipe.c | |
parent | e393365fa2198f51431514713ca4d9b22d4d9735 (diff) | |
download | linux-0da4596d67565ba6940c2e9bd4ddae555b5524d8.tar.xz |
NFS: Fix I/O request leakages
commit f57dcf4c72113c745d83f1c65f7291299f65c14f upstream.
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+
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/pipe.c')
0 files changed, 0 insertions, 0 deletions