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 PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 10 Apr 2011 21:46:25 -0400 From: Ted Ts'o <tytso@....edu> To: Yongqiang Yang <xiaoqiangnk@...il.com> Cc: bugzilla-daemon@...zilla.kernel.org, damien@...ssart.com, feng.tang@...el.com, linux-ext4@...r.kernel.org Subject: Re: [Bug 32972] New: EXT4 causes corrupt BitTorrent downloads On Sun, Apr 10, 2011 at 10:30:13PM +0800, Yongqiang Yang wrote: > So the right code should be: > > bh->b_state = (bh->b_state & ~EXT4_MAP_FLAGS) | map.m_flags; > map_bh(bh, inode->i_sb, map.m_pblk); > if (buffer_unwritten(bh)) { > /* A delayed write to unwritten bh should be marked > * new and mapped. Mapped ensures that we don't do > * get_block multiple times when we write to the same > * offset and new ensures that we do proper zero out > * for partial write. > */ > set_buffer_new(bh); > } Actually, I'm much more comfortable backing out commit 6de9843da entirely. The above is *not* equivalent to what we had before --- consider the case where ext4_map_blocks returns !EXT4_MAP_MAPPED && !EXT4_MAP_UNWRITTEN. I don't *think* this should happen in the case where ext4_map_blocks returns a value > 0, but the fact that it's not obvious, means I'd much rather keep things the way that they are. It's not like dropping the set_buffer_mapped(bh) was saving anything measurable anyway.... - 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