lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20160915153408.qvhtcymmvkfdlvfj@thunk.org>
Date:   Thu, 15 Sep 2016 11:34:08 -0400
From:   Theodore Ts'o <tytso@....edu>
To:     wang.guang55@....com.cn
Cc:     linux-ext4@...r.kernel.org
Subject: Re: [RESEND PATCH]ext4: bugfix for mmaped pages in
 mpage_release_unused_pages()

On Tue, Sep 06, 2016 at 04:49:17PM +0800, wang.guang55@....com.cn wrote:
> ext4: bugfix for mmaped pages  in mpage_release_unused_pages()
> 
> Pages clear buffers after ext4 delayed block allocation failed,
> However, it does not clean its pte_dirty flag.
> if the pages unmap ,in cording to the pte_dirty ,
> unmap_page_range may try to call __set_page_dirty,
> 
> which may lead to the bugon at 
> mpage_prepare_extent_to_map:head = page_buffers(page);.
> 
> This patch just call clear_page_dirty_for_io to clean pte_dirty 
> at mpage_release_unused_pages for pages mmaped. 
> 
>  
> Steps to reproduce the bug:
> (1) mmap a file in ext4
> addr = (char *)mmap(NULL, 4096, 
>         PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
>  memset(addr, 'i', 4096);
> (2) return EIO at 
> ext4_writepages->mpage_map_and_submit_extent->mpage_map_one_extent 
> Cause the log:
>                 ext4_msg(sb, KERN_CRIT,
>                         "Delayed block allocation failed for "
>                         "inode %lu at logical offset %llu with"
>                         " max blocks %u with error %d",
>                         inode->i_ino,
>                         (unsigned long long)map->m_lblk,
>                         (unsigned)map->m_len, -err);
> 
> (3)Unmap the addr cause warning at 
> __set_page_dirty:WARN_ON_ONCE(warn && !PageUptodate(page));
> (4) wait for a minute,then bugon happen.
> 
> Signed-off-by: wangguang <wangguang03@....com>

Thanks, applied.   Apologies for the delay.

						- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ