Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S262056AbTERNHu (ORCPT ); Sun, 18 May 2003 09:07:50 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S262058AbTERNHu (ORCPT ); Sun, 18 May 2003 09:07:50 -0400 Received: from tmi.comex.ru ([217.10.33.92]:24785 "EHLO gw.home.net") by vger.kernel.org with ESMTP id S262056AbTERNHt (ORCPT ); Sun, 18 May 2003 09:07:49 -0400 Subject: [RFC] probably bug in current ext3/jbd From: Alex Tomas To: linux-kernel@vger.kernel.org Cc: ext2-devel@lists.sourceforge.net, Alex Tomas Organization: HOME Date: Sun, 18 May 2003 17:21:08 +0000 Message-ID: <87d6igmarf.fsf@gw.home.net> User-Agent: Gnus/5.090018 (Oort Gnus v0.18) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1451 Lines: 50 hi! ext3/jbd use b_committed_data buffer in order to prevent allocation of blocks which were freed in non-committed transaction. I think there is bug in this code. look, some thread commit thread ---------------------------------------------------------- get_undo_access(#1) dirty_buffer(#1) stop_journal() start commit start_journal() get_undo_access(#1): 1) wait for #1 to be in t_forget_list write #1 to log put #1 onto t_forget_list 2) b_commit_data exists, finish get_undo_access() for_each_bh_in_forget_list() { if (jh->b_committed_data) { kfree(jh->b_committed_data); jh->b_committed_data = NULL; } } /* using of b_committed_data */ b_committed_data is NULL ? with best regards, Alex - 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/