NFS: Fix an I/O request leakage in nfs_do_recoalesce
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Fri, 15 Feb 2019 19:59:52 +0000 (14:59 -0500)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Wed, 20 Feb 2019 20:14:20 +0000 (15:14 -0500)
Whether we need to exit early, or just reprocess the list, we
must not lost track of the request which failed to get recoalesced.

Fixes: 03d5eb65b538 ("NFS: Fix a memory leak in nfs_do_recoalesce")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Cc: stable@vger.kernel.org # v4.0+
fs/nfs/pagelist.c

index 301880a3ad8ee3595a035507d7adb81f74cf0c70..03bde9a4145127a01417808b18e209f230fc22b5 100644 (file)
@@ -1092,7 +1092,6 @@ static int nfs_do_recoalesce(struct nfs_pageio_descriptor *desc)
                        struct nfs_page *req;
 
                        req = list_first_entry(&head, struct nfs_page, wb_list);
-                       nfs_list_remove_request(req);
                        if (__nfs_pageio_add_request(desc, req))
                                continue;
                        if (desc->pg_error < 0) {