From: Rik van Riel <riel@redhat.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Trond Myklebust <Trond.Myklebust@netapp.com>,
Nick Bowler <nbowler@elliptictech.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-nfs@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Hugh Dickins <hughd@google.com>, Christoph Hellwig <hch@lst.de>,
Al Viro <viro@zeniv.linux.org.uk>
Subject: Re: [PATCH v2 3/3] NFS: Fix a memory leak in nfs_readdir
Date: Wed, 01 Dec 2010 12:02:06 -0500 [thread overview]
Message-ID: <4CF67F8E.6050308@redhat.com> (raw)
In-Reply-To: <AANLkTinwrhUOQ0LnavQY6+TQS_TqnRS0q-XXykZ8ap5G@mail.gmail.com>
On 12/01/2010 11:47 AM, Linus Torvalds wrote:
> On Wed, Dec 1, 2010 at 8:35 AM, Rik van Riel<riel@redhat.com> wrote:
>>
>> Surely somebody can have just looked up the page and
>> gotten a reference count, right before your ->freepage
>> call is invoked?
>
> No.
>
> The removal from the page cache is atomic, even in the presence of the
> lockless lookup.
>
> The page cache lookup does a "get_page_unless_zero()" on the count, so
> when __remove_mapping() has removed the page using
> "page_freeze_refs()", it's really gone, and cannot be looked up.
Doh, you're right. I forgot to look at all the stuff that
__remove_mapping does nowadays and remembered some very old
code from vmscan.c instead.
Acked-by: Rik van Riel <riel@redhat.com>
--
All rights reversed
next prev parent reply other threads:[~2010-12-01 17:02 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-30 17:42 [PATCH] NFS: Fix a readdirplus bug Trond Myklebust
2010-11-30 22:10 ` Linus Torvalds
2010-11-30 22:13 ` Trond Myklebust
2010-12-01 3:47 ` [PATCH 0/3] Fix more NFS readdir regressions Trond Myklebust
2010-12-01 3:47 ` [PATCH 1/3] NFS: Ensure we use the correct cookie in nfs_readdir_xdr_filler Trond Myklebust
2010-12-01 15:04 ` Nick Bowler
2010-12-01 15:36 ` [PATCH v2 0/3] Fix more NFS readdir regressions Trond Myklebust
2010-12-01 15:36 ` [PATCH v2 1/3] NFS: Ensure we use the correct cookie in nfs_readdir_xdr_filler Trond Myklebust
2010-12-01 15:36 ` [PATCH v2 2/3] NFS: lock the readdir page while it is in use Trond Myklebust
2010-12-01 15:36 ` [PATCH v2 3/3] NFS: Fix a memory leak in nfs_readdir Trond Myklebust
2010-12-01 16:17 ` Linus Torvalds
2010-12-01 16:35 ` Rik van Riel
2010-12-01 16:45 ` Benny Halevy
2010-12-01 16:47 ` Linus Torvalds
2010-12-01 17:02 ` Rik van Riel [this message]
2010-12-01 17:58 ` Trond Myklebust
2010-12-01 18:29 ` Miklos Szeredi
2010-12-01 18:54 ` Trond Myklebust
2010-12-01 19:23 ` Hugh Dickins
2010-12-01 19:52 ` Linus Torvalds
2010-12-01 20:05 ` Trond Myklebust
2010-12-01 20:39 ` Andrew Morton
2010-12-01 21:29 ` Neil Brown
2010-12-01 22:43 ` Andrew Morton
2010-12-01 23:01 ` Neil Brown
2010-12-01 19:47 ` Linus Torvalds
2010-12-01 20:10 ` Trond Myklebust
2010-12-01 20:10 ` Trond Myklebust
2010-12-01 20:18 ` Linus Torvalds
2010-12-01 20:31 ` Hugh Dickins
2010-12-01 20:33 ` Andrew Morton
2010-12-01 21:02 ` Hugh Dickins
2010-12-01 21:15 ` Hugh Dickins
2010-12-01 21:38 ` Andrew Morton
2010-12-01 21:51 ` Trond Myklebust
2010-12-01 22:13 ` Andrew Morton
2010-12-01 22:24 ` Linus Torvalds
2010-12-01 22:38 ` Andrew Morton
2010-12-01 22:47 ` Trond Myklebust
2010-12-01 23:21 ` Trond Myklebust
2010-12-01 23:21 ` Trond Myklebust
2010-12-01 23:46 ` Andrew Morton
2010-12-01 23:56 ` Trond Myklebust
2010-12-01 23:31 ` Linus Torvalds
2010-12-01 23:36 ` Andrew Morton
2010-12-02 1:05 ` Linus Torvalds
2010-12-02 1:22 ` Andrew Morton
2010-12-02 1:42 ` Linus Torvalds
2010-12-02 2:05 ` Andrew Morton
2010-12-02 3:08 ` [PATCH v3 0/3] Fix more NFS readdir regressions Trond Myklebust
2010-12-02 3:08 ` [PATCH v3 1/3] NFS: Ensure we use the correct cookie in nfs_readdir_xdr_filler Trond Myklebust
2010-12-02 3:08 ` [PATCH v3 2/3] Call the filesystem back whenever a page is removed from the page cache Trond Myklebust
2010-12-02 3:34 ` Hugh Dickins
2010-12-02 3:53 ` Trond Myklebust
2010-12-02 3:58 ` Linus Torvalds
2010-12-06 16:59 ` [PATCH v4 0/3] Fix more NFS readdir regressions Trond Myklebust
2010-12-06 16:59 ` [PATCH v4 1/3] NFS: Ensure we use the correct cookie in nfs_readdir_xdr_filler Trond Myklebust
2010-12-06 16:59 ` [PATCH v4 2/3] Call the filesystem back whenever a page is removed from the page cache Trond Myklebust
2010-12-07 7:08 ` Nick Piggin
2010-12-06 16:59 ` [PATCH v4 3/3] NFS: Fix a memory leak in nfs_readdir Trond Myklebust
2010-12-02 3:08 ` [PATCH v3 " Trond Myklebust
2010-12-03 9:12 ` [PATCH v2 " Nick Piggin
2010-12-01 23:43 ` Trond Myklebust
2010-12-01 22:43 ` Hugh Dickins
2010-12-01 3:47 ` [PATCH 2/3] NFS: lock the readdir page while it is in use Trond Myklebust
2010-12-01 4:10 ` Linus Torvalds
2010-12-01 4:29 ` Trond Myklebust
2010-12-01 5:06 ` Linus Torvalds
2010-12-01 14:49 ` Trond Myklebust
2010-12-01 13:14 ` Rik van Riel
2010-12-01 14:55 ` Trond Myklebust
2010-12-01 3:47 ` [PATCH 3/3] NFS: Fix a memory leak in nfs_readdir Trond Myklebust
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4CF67F8E.6050308@redhat.com \
--to=riel@redhat.com \
--cc=Trond.Myklebust@netapp.com \
--cc=akpm@linux-foundation.org \
--cc=hch@lst.de \
--cc=hughd@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=nbowler@elliptictech.com \
--cc=torvalds@linux-foundation.org \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.