From: Nick Piggin <npiggin@suse.de>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Andrew Morton <akpm@osdl.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Linux Memory Management List <linux-mm@kvack.org>,
Greg KH <gregkh@suse.de>
Subject: Re: [patch] mm: bug in set_page_dirty_buffers
Date: Tue, 10 Oct 2006 05:19:40 +0200 [thread overview]
Message-ID: <20061010031940.GG15822@wotan.suse.de> (raw)
In-Reply-To: <Pine.LNX.4.64.0610091951350.3952@g5.osdl.org>
On Mon, Oct 09, 2006 at 08:06:05PM -0700, Linus Torvalds wrote:
>
>
> On Tue, 10 Oct 2006, Nick Piggin wrote:
> >
> > This was triggered, but not the fault of, the dirty page accounting
> > patches. Suitable for -stable as well, after it goes upstream.
>
> Applied. However, I wonder what protects "page_mapping()" here? I don't
> think we hold the page lock anywhere, so "page->mapping" can change at any
> time, no?
>
> The worry might be that the mapping is truncated, page->mapping is set to
> NULL (but after we cached the old value in "mapping"), and then the
> "struct address_space" is released, so that when we do
>
> spin_lock(&mapping->private_lock);
>
> we'd be accessing a stale pointer..
>
> Hmm. I guess the mapping cannot become stale at least in _this_ case,
> since the page is mapped into the addess space and the mapping is thus
> pinned by the vma for normal file mappings.
>
> But what happens for other cases where that isn't the situation, and the
> page is related to some other address space (swap, remap_file_pages,
> whatever..)?
We require that set_page_dirty only be called when it has the mapping
pinned. There are a few places that can't do this, so they have
set_page_dirty_lock which pins the mapping before calling down.
Aside, as you might remember a few months ago, we "discovered" that
lock_page needs the mapping pinned too, which gave rise to the lovely
lock_page_nosync special case!
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2006-10-10 3:19 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-10 2:36 [patch] mm: bug in set_page_dirty_buffers Nick Piggin
2006-10-10 3:06 ` Linus Torvalds
2006-10-10 3:19 ` Nick Piggin [this message]
2006-10-10 3:20 ` Andrew Morton
2006-10-10 3:34 ` Nick Piggin
2006-10-10 3:50 ` Andrew Morton
2006-10-10 3:58 ` Nick Piggin
2006-10-10 4:14 ` Andrew Morton
2006-10-10 4:21 ` Nick Piggin
2006-10-10 4:38 ` Andrew Morton
2006-10-10 4:47 ` Nick Piggin
2006-10-10 5:01 ` Andrew Morton
2006-10-10 5:22 ` Nick Piggin
2006-10-10 5:29 ` Andrew Morton
2006-10-10 5:48 ` Nick Piggin
2006-10-10 6:08 ` Andrew Morton
2006-10-10 6:19 ` Nick Piggin
2006-10-10 6:27 ` Andrew Morton
2006-10-10 6:39 ` Nick Piggin
2006-10-10 6:52 ` Nick Piggin
2006-10-10 7:06 ` Andrew Morton
2006-10-10 7:21 ` Nick Piggin
2006-10-10 8:07 ` Andrew Morton
2006-10-10 8:18 ` Nick Piggin
2006-10-10 8:41 ` Andrew Morton
2006-10-10 8:49 ` Nick Piggin
2006-10-10 9:07 ` Andrew Morton
2006-10-10 9:23 ` Nick Piggin
2006-10-10 6:48 ` Peter Zijlstra
2006-10-10 6:59 ` Nick Piggin
2006-10-10 7:11 ` Peter Zijlstra
2006-10-10 7:30 ` Nick Piggin
2006-10-10 4:11 ` Nick Piggin
2006-10-10 3:37 ` Andrew Morton
2006-10-10 3:42 ` Nick Piggin
2006-10-10 7:42 ` patch mm-bug-in-set_page_dirty_buffers.patch queued to -stable tree gregkh
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=20061010031940.GG15822@wotan.suse.de \
--to=npiggin@suse.de \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@osdl.org \
--cc=gregkh@suse.de \
--cc=linux-mm@kvack.org \
--cc=torvalds@osdl.org \
/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.