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.
next 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