Return-Path: Received: from mx2.netapp.com ([216.240.18.37]:9226 "EHLO mx2.netapp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753892Ab0LFQ7c (ORCPT ); Mon, 6 Dec 2010 11:59:32 -0500 From: Trond Myklebust To: Linus Torvalds , Nick Bowler Cc: Simon Kirby , Linux Kernel Mailing List , linux-nfs@vger.kernel.org, Andrew Morton , Hugh Dickins , Nick Piggin , Rik van Riel , Christoph Hellwig , Al Viro Subject: [PATCH v4 0/3] Fix more NFS readdir regressions Date: Mon, 6 Dec 2010 11:59:05 -0500 Message-Id: <1291654748-8921-1-git-send-email-Trond.Myklebust@netapp.com> In-Reply-To: References: Sender: linux-nfs-owner@vger.kernel.org List-ID: Content-Type: text/plain MIME-Version: 1.0 > OK. The first patch in this series fixes the regression reported by > Nick Bowler when I apply it to my setup. > The 2 remaining patches are needed in order to ensure that the > VM doesn't free the readdir page cache page while we're trying to > read from it, and to ensure that we don't leak memory... > Linus, please don't apply these patches quite yet. I'd like to continue > tests for a couple more days before I send you the pull request. v2 fixes the following issues: - Fix up the cookie usage in uncached_readdir() - Changelog fixups for the second patch - .releasepage should use kmap_atomic() so that it can be called from all direct reclaim contexts. - Ensure that .releasepage also clears Pg_uptodate - Set/clear the Pg_private flag to ensure .releasepage gets called when appropriate. - Add a .invalidatepage to ensure truncate_inode_pages() works correctly - Ensure that the anonymous page that is generated by uncached_readdir() doesn't leak memory. v3: - add the freepage() address space operation. - Dump the page locking - rewrite patch 'Fix a memory leak in nfs_readdir' to work with the new ->freepage() callback. v4: - Remove the preempt disable/enable protection in __remove_mapping - Add a freepage() call to remove_from_page_cache() instead of open-coding it in truncate_complete_page(). Cheers Trond Linus Torvalds (1): Call the filesystem back whenever a page is removed from the page cache Trond Myklebust (2): NFS: Ensure we use the correct cookie in nfs_readdir_xdr_filler NFS: Fix a memory leak in nfs_readdir Documentation/filesystems/Locking | 7 ++++++- Documentation/filesystems/vfs.txt | 7 +++++++ fs/nfs/dir.c | 28 +++++++++++++++++----------- fs/nfs/inode.c | 1 + include/linux/fs.h | 1 + include/linux/nfs_fs.h | 1 + mm/filemap.c | 5 +++++ mm/truncate.c | 4 ++++ mm/vmscan.c | 7 +++++++ 9 files changed, 49 insertions(+), 12 deletions(-) -- 1.7.3.2