From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@bugzilla.kernel.org Subject: [Bug 32972] New: EXT4 causes corrupt BitTorrent downloads Date: Sun, 10 Apr 2011 13:44:39 GMT Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" To: linux-ext4@vger.kernel.org Return-path: Received: from demeter1.kernel.org ([140.211.167.39]:54107 "EHLO demeter1.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753510Ab1DJNok (ORCPT ); Sun, 10 Apr 2011 09:44:40 -0400 Received: from demeter1.kernel.org (localhost.localdomain [127.0.0.1]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p3ADidh3020719 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Sun, 10 Apr 2011 13:44:39 GMT Sender: linux-ext4-owner@vger.kernel.org List-ID: https://bugzilla.kernel.org/show_bug.cgi?id=32972 Summary: EXT4 causes corrupt BitTorrent downloads Product: File System Version: 2.5 Kernel Version: 2.6.39-rc2+ Platform: All OS/Version: Linux Tree: Mainline Status: NEW Severity: high Priority: P1 Component: ext4 AssignedTo: fs_ext4@kernel-bugs.osdl.org ReportedBy: damien@grassart.com CC: feng.tang@intel.com Regression: Yes Using the Transmission BitTorrent client (version 2.11) with the most recent kernel (2.6.39-rc2+), any torrent I try to download is corrupt. By using Transmission's "Verify Local Data" functionality, I am able to reproduce this consistently. During verification, the percent complete will reverse itself as the verification process invalidates pieces that were just downloaded. I was able to bisect the issue and track it down to this commit: commit 6de9843dab3f2a1d4d66d80aa9e5782f80977d20 Author: Feng Tang Date: Wed Mar 23 14:05:03 2011 -0400 ext4: remove redundant set_buffer_mapped() in ext4_da_get_block_prep() The map_bh() call will have already set the buffer_head to mapped. Signed-off-by: Feng Tang Signed-off-by: "Theodore Ts'o" diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index f44307a..dec10e2 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -2502,7 +2502,6 @@ static int ext4_da_get_block_prep(struct inode *inode, sector_t iblock, * for partial write. */ set_buffer_new(bh); - set_buffer_mapped(bh); } return 0; } I confirmed that reverting this commit makes the problem go away. Thanks, -Damien -- Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching the assignee of the bug.