Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754034AbYJYLW5 (ORCPT ); Sat, 25 Oct 2008 07:22:57 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751980AbYJYLWs (ORCPT ); Sat, 25 Oct 2008 07:22:48 -0400 Received: from wa-out-1112.google.com ([209.85.146.177]:45459 "EHLO wa-out-1112.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751930AbYJYLWr (ORCPT ); Sat, 25 Oct 2008 07:22:47 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:mime-version:content-type :content-transfer-encoding:content-disposition; b=wssXUum8M3HH7FXRIsg+qdwn5UqKwF7VrktreQt6IoDKjrKf3vssCLSFiJpFnnJeyG 6QerUkBdiBEi5OUlKFHLmSum8TB4Cs/3jZDmWJNw3dFJuNmvaEPe8VW3EVW/qCxt6yt5 l5BkIrGpp59F5yrFqlGZdw3tH/aGas3Dr1vvI= Message-ID: <19f34abd0810250422t17990222x78fcf0fad2e6f04b@mail.gmail.com> Date: Sat, 25 Oct 2008 13:22:45 +0200 From: "Vegard Nossum" To: "Hidehiro Kawai" , "Theodore Tso" Subject: v2.6.28-rc1: Regression in ext3/jbd Cc: "Jan Kara" , "Stephen Rothwell" , "Al Viro" , linux-ext4@vger.kernel.org, "Andrew Morton" , "Linus Torvalds" , "Rafael J. Wysocki" , "Ingo Molnar" , "Pekka Enberg" , linux-kernel@vger.kernel.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2079 Lines: 62 [Sorry in advance for the huge Cc, most of it is from the commit.] Hi, This commit: commit 2d7c820e56ce83b23daee9eb5343730fb309418e Author: Hidehiro Kawai Date: Wed Oct 22 14:15:01 2008 -0700 ext3: add checks for errors from jbd introduces a regression which was discovered by kmemcheck: WARNING: kmemcheck: Caught 32-bit read from freed memory (f4f1b804) 00b0f1f4fbffffff404439ef008830f20200000097970000ad4eaddeffffffff i i i i f f f f f f f f f f f f f f f f f f f f f f f f f f f f ^ Pid: 9550, comm: umount Not tainted (2.6.28-rc1 #58) 945P-A EIP: 0060:[] EFLAGS: 00010246 CPU: 0 EIP is at __journal_abort_soft+0x18/0xa0 EAX: f4f1b800 EBX: f4f1b800 ECX: c0462799 EDX: fffffffb ESI: fffffffb EDI: f4f1a800 EBP: f145dea8 ESP: c25699c8 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 CR0: 8005003b CR2: f6c1d704 CR3: 31448000 CR4: 00000650 DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 DR6: ffff4ff0 DR7: 00000400 [] journal_abort+0x8/0x10 [] ext3_abort+0xb5/0xc0 [] ext3_put_super+0x160/0x230 [] generic_shutdown_super+0x5a/0xe0 In particular, this hunk is guilty: - journal_destroy(sbi->s_journal); + if (journal_destroy(sbi->s_journal) < 0) + ext3_abort(sb, __func__, "Couldn't clean up the journal"); because journal_destroy() will free the journal regardless of whether it returned < 0 or not. And then ext3_abort() makes some calls that dereference the (freed) journal. These are the line numbers for the backtrace: addr2line -e vmlinux -i c05bdf38 c05bdfc8 c0589eb5 c058a300 c04ec02a fs/jbd/journal.c:1502 fs/jbd/journal.c:1560 fs/ext3/super.c:284 fs/ext3/super.c:397 fs/super.c:307 (as of e013e13bf605b9e6b702adffbe2853cfc60e7806 in Linus's tree). I hope this helps. Vegard -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/