From: Josef Bacik <josef@toxicpanda.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Josef Bacik <josef@toxicpanda.com>,
linux-mm@kvack.org, kernel-team@fb.com
Subject: Re: [PATCH] filemap: don't unlock null page in FGP_FOR_MMAP case
Date: Wed, 13 Mar 2019 10:25:27 -0400 [thread overview]
Message-ID: <20190313142526.zafldmokz3ggywv6@MacBook-Pro-91.local> (raw)
In-Reply-To: <20190312140623.54e337e01eb9fbfe11258330@linux-foundation.org>
On Tue, Mar 12, 2019 at 02:06:23PM -0700, Andrew Morton wrote:
> On Tue, 12 Mar 2019 16:17:42 -0400 Josef Bacik <josef@toxicpanda.com> wrote:
>
> > We noticed a panic happening in production with the filemap fault pages
> > because we were unlocking a NULL page. If add_to_page_cache() fails
> > then we'll have a NULL page, so fix this check to only unlock if we
> > have a valid page.
> >
> > Signed-off-by: Josef Bacik <josef@toxicpanda.com>
> > ---
> > mm/filemap.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/mm/filemap.c b/mm/filemap.c
> > index cace3eb8069f..2815cb79a246 100644
> > --- a/mm/filemap.c
> > +++ b/mm/filemap.c
> > @@ -1663,7 +1663,7 @@ struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset,
> > * add_to_page_cache_lru locks the page, and for mmap we expect
> > * an unlocked page.
> > */
> > - if (fgp_flags & FGP_FOR_MMAP)
> > + if (page && (fgp_flags & FGP_FOR_MMAP))
> > unlock_page(page);
> > }
> >
>
> Fixes "filemap: kill page_cache_read usage in filemap_fault".
>
> This patch series:
>
> filemap-kill-page_cache_read-usage-in-filemap_fault.patch
> filemap-kill-page_cache_read-usage-in-filemap_fault-fix.patch
> filemap-kill-page_cache_read-usage-in-filemap_fault-fix-2.patch
> filemap-pass-vm_fault-to-the-mmap-ra-helpers.patch
> filemap-drop-the-mmap_sem-for-all-blocking-operations.patch
> filemap-drop-the-mmap_sem-for-all-blocking-operations-v6.patch
> filemap-drop-the-mmap_sem-for-all-blocking-operations-fix.patch
> filemap-drop-the-mmap_sem-for-all-blocking-operations-checkpatch-fixes.patch
>
> has been stuck since December. I have a note here that syzbot reported
> a use-after-free. What's the situation with that?
>
Yup that was fixed by
filemap-drop-the-mmap_sem-for-all-blocking-operations-fix.patch
so we're good there.
> I also have a cryptic note that
> filemap-drop-the-mmap_sem-for-all-blocking-operations-v6.patch is
> "still fishy". I'm not sure what I meant by the latter - the (small
> amount of) review seems to be OK. Do you recall what issues there
> might have been and the status of those?
Looking back at the discussion I _think_ the "still fishy" thing was you were
concerned that now if we can't get a page in do_async_mmap_readahead and we
dropped the mmap sem we'd return VM_FAULT_RETRY instead of -ENOMEM. Jan pointed
out that we have to do this as we've dropped the mmap_sem and it's the only safe
thing to return so we're ok there. If that's not it then I'm not sure why you
were still concerned with it.
For what its worth these patches have been in production since December, we only
noticed this panic on a small set of hosts that still have ext4 so by-in-large
they've been stable. Thanks,
Josef
next prev parent reply other threads:[~2019-03-13 14:25 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-12 20:17 Josef Bacik
2019-03-12 21:06 ` Andrew Morton
2019-03-13 14:25 ` Josef Bacik [this message]
2019-03-12 21:08 ` Rik van Riel
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=20190313142526.zafldmokz3ggywv6@MacBook-Pro-91.local \
--to=josef@toxicpanda.com \
--cc=akpm@linux-foundation.org \
--cc=kernel-team@fb.com \
--cc=linux-mm@kvack.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox