Skip to content

Commit 862f35c

Browse files
author
Trond Myklebust
committed
NFS: Fix memory leaks in nfs_pageio_stop_mirroring()
If we just set the mirror count to 1 without first clearing out the mirrors, we can leak queued up requests. Signed-off-by: Trond Myklebust <[email protected]>
1 parent f02cec9 commit 862f35c

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

fs/nfs/pagelist.c

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -900,15 +900,6 @@ static void nfs_pageio_setup_mirroring(struct nfs_pageio_descriptor *pgio,
900900
pgio->pg_mirror_count = mirror_count;
901901
}
902902

903-
/*
904-
* nfs_pageio_stop_mirroring - stop using mirroring (set mirror count to 1)
905-
*/
906-
void nfs_pageio_stop_mirroring(struct nfs_pageio_descriptor *pgio)
907-
{
908-
pgio->pg_mirror_count = 1;
909-
pgio->pg_mirror_idx = 0;
910-
}
911-
912903
static void nfs_pageio_cleanup_mirroring(struct nfs_pageio_descriptor *pgio)
913904
{
914905
pgio->pg_mirror_count = 1;
@@ -1334,6 +1325,14 @@ void nfs_pageio_cond_complete(struct nfs_pageio_descriptor *desc, pgoff_t index)
13341325
}
13351326
}
13361327

1328+
/*
1329+
* nfs_pageio_stop_mirroring - stop using mirroring (set mirror count to 1)
1330+
*/
1331+
void nfs_pageio_stop_mirroring(struct nfs_pageio_descriptor *pgio)
1332+
{
1333+
nfs_pageio_complete(pgio);
1334+
}
1335+
13371336
int __init nfs_init_nfspagecache(void)
13381337
{
13391338
nfs_page_cachep = kmem_cache_create("nfs_page",

0 commit comments

Comments
 (0)