[linux-cifs-client] [PATCH] cifs: fix page refcount leak

Nick Piggin npiggin at suse.de
Tue May 25 10:54:30 MDT 2010


On Tue, May 25, 2010 at 12:28:37PM -0400, Jeff Layton wrote:
> 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 at redhat.com>
> Cc: Nick Piggin <npiggin at suse.de>

Acked-by: Nick Piggin <npiggin at suse.de>

> ---
>  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


More information about the linux-cifs-client mailing list