OSDN Git Service

NFS: Fix a memory leak in nfs_readdir
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 1 Dec 2010 19:17:06 +0000 (14:17 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Thu, 2 Dec 2010 14:58:00 +0000 (09:58 -0500)
commit11de3b11e08cac26d59e88efaf4e316701883552
treee4cc282e692560897c42c5fbc8df227d5da669d4
parent6072d13c429373c5d63b69dadbbef40a9b035552
NFS: Fix a memory leak in nfs_readdir

We need to ensure that the entries in the nfs_cache_array get cleared
when the page is removed from the page cache. To do so, we use the
freepage address_space operation.

Change nfs_readdir_clear_array to use kmap_atomic(), so that the
function can be safely called from all contexts.

Finally, modify the cache_page_release helper to call
nfs_readdir_clear_array directly, when dealing with an anonymous
page from 'uncached_readdir'.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/dir.c
fs/nfs/inode.c
include/linux/nfs_fs.h