From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeff Layton Subject: [PATCH] cifs: fix page refcount leak Date: Tue, 25 May 2010 12:28:37 -0400 Message-ID: <1274804917-23814-1-git-send-email-jlayton@redhat.com> Cc: npiggin@suse.de, shaggy@linux.vnet.ibm.com, linux-cifs-client@lists.samba.org, linux-fsdevel@vger.kernel.org To: sfrench@gmail.com Return-path: Received: from cdptpa-omtalb.mail.rr.com ([75.180.132.122]:61083 "EHLO cdptpa-omtalb.mail.rr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756484Ab0EYQ2k (ORCPT ); Tue, 25 May 2010 12:28:40 -0400 Sender: linux-fsdevel-owner@vger.kernel.org List-ID: 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 Cc: Nick Piggin --- fs/cifs/file.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/fs/cifs/file.c b/fs/cifs/file.c index 310533d..29ca398 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c @@ -1919,6 +1919,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); -- 1.6.6.1