public inbox for linux-ext4@vger.kernel.org
 help / color / mirror / Atom feed
From: bugzilla-daemon@bugzilla.kernel.org
To: linux-ext4@vger.kernel.org
Subject: [Bug 151511] New: BUGON at fs/ext4/inode.c line :2245
Date: Fri, 05 Aug 2016 03:42:33 +0000	[thread overview]
Message-ID: <bug-151511-13602@https.bugzilla.kernel.org/> (raw)

https://bugzilla.kernel.org/show_bug.cgi?id=151511

            Bug ID: 151511
           Summary: BUGON at fs/ext4/inode.c line :2245
           Product: File System
           Version: 2.5
    Kernel Version: 3.14.74
          Hardware: All
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: high
          Priority: P1
         Component: ext4
          Assignee: fs_ext4@kernel-bugs.osdl.org
          Reporter: 35445233@qq.com
        Regression: No

I hit the BUG_ON after munmap a file.

BUGON at fs/ext4/inode.c line :2245
mpage_prepare_extent_to_map
...
head = page_buffers(page); //bug on at here


when io err happened at ext4_writepages->mpage_map_and_submit_extent,ext4
return err from mpage_map_and_submit_extent->mpage_map_one_extent.
Then ext4 set give_up_on_write  be true to discard  dirty pages to avoid
infinite loops.
But in mpage_release_unused_pages(&mpd, give_up_on_write), ext4 didn't clean
the pte->dirty.
when page munmaped,unmap_page_range->zap_pud_range->zap_pte_range
set_page_dirty again will cause the bugon at fs/ext4/inode.c line :2245.

    root/mm/memory.c
    zap_pte_range
    1145:        if (pte_dirty(ptent))
    1146:            set_page_dirty(page); //set again cause bugon


I  clear_page_dirty_for_io  in mpage_release_unused_pages can solve the bugon. 

                      if (invalidate) {
+                                       if (page_mapped(page)) 
+                                       {
+                                       clear_page_dirty_for_io(page);
+                                       )
                                block_invalidatepage_range(page, 0,
                                                           PAGE_CACHE_SIZE);
                                ClearPageUptodate(page);
but i am not sure the patch is ok.

-- 
You are receiving this mail because:
You are watching the assignee of the bug.

             reply	other threads:[~2016-08-05  3:42 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-05  3:42 bugzilla-daemon [this message]
2016-08-05  5:45 ` [Bug 151511] BUGON at fs/ext4/inode.c line :2245 bugzilla-daemon

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=bug-151511-13602@https.bugzilla.kernel.org/ \
    --to=bugzilla-daemon@bugzilla.kernel.org \
    --cc=linux-ext4@vger.kernel.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