summaryrefslogtreecommitdiff
path: root/fs/cifs
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2010-06-01 10:54:45 -0400
committerSteve French <sfrench@us.ibm.com>2010-06-01 17:15:52 +0000
commit06b43672a9e665cab18dc7b77d56d36884b90d45 (patch)
tree79cc0493370222c074709a0c742ee4209a63e582 /fs/cifs
parent67a3e12b05e055c0415c556a315a3d3eb637e29e (diff)
downloadlinux-3.10-06b43672a9e665cab18dc7b77d56d36884b90d45.tar.gz
linux-3.10-06b43672a9e665cab18dc7b77d56d36884b90d45.tar.bz2
linux-3.10-06b43672a9e665cab18dc7b77d56d36884b90d45.zip
cifs: fix page refcount leak
Commit 315e995c63a15cb4d4efdbfd70fe2db191917f7a is causing OOM kills when stress-testing a CIFS filesystem. The VFS readpages operation takes a page reference. The older code just handed this reference off to the page cache, but the new code takes an extra one. The simplest fix is to put the new reference after add_to_page_cache_lru. Signed-off-by: Jeff Layton <jlayton@redhat.com> Acked-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs')
-rw-r--r--fs/cifs/file.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index f1ff785b229..75541af4b3d 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -1952,6 +1952,7 @@ static void cifs_copy_cache_pages(struct address_space *mapping,
bytes_read -= PAGE_CACHE_SIZE;
continue;
}
+ page_cache_release(page);
target = kmap_atomic(page, KM_USER0);