From patchwork Wed Jan 12 17:26:46 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Theodore Ts'o X-Patchwork-Id: 78593 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 60F11B6EF1 for ; Thu, 13 Jan 2011 04:26:51 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754691Ab1ALR0t (ORCPT ); Wed, 12 Jan 2011 12:26:49 -0500 Received: from thunk.org ([69.25.196.29]:44053 "EHLO thunker.thunk.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751816Ab1ALR0s (ORCPT ); Wed, 12 Jan 2011 12:26:48 -0500 Received: from root (helo=tytso-glaptop) by thunker.thunk.org with local-esmtp (Exim 4.50 #1 (Debian)) id 1Pd4T9-0001w2-JK; Wed, 12 Jan 2011 12:26:47 -0500 Received: from tytso by tytso-glaptop with local (Exim 4.71) (envelope-from ) id 1Pd4T8-00056o-IL; Wed, 12 Jan 2011 12:26:46 -0500 Date: Wed, 12 Jan 2011 12:26:46 -0500 From: Ted Ts'o To: Sebastian Ott Cc: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: Oops while going into hibernate Message-ID: <20110112172646.GB13496@thunk.org> Mail-Followup-To: Ted Ts'o , Sebastian Ott , linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org References: <20110112162655.GA13496@thunk.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on thunker.thunk.org); SAEximRunCond expanded to false Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org Since I don't have a machine set up to test hibernation easily at hand, I'd really appreciate it if you could try this patch to determine which inode had the NULL jinode --- and then once you get the device and inode number, to use debugfs's "ncheck" command to map the inode number to a pathname. If you could do that, it would be a huge help. Thanks, regards, - Ted P.S. Also, if you could try suspending once or twice, with different programs running, to see if the inode number and pathname are constant or vary, that would also be helpful. --- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/fs/ext4/ext4_jbd2.h b/fs/ext4/ext4_jbd2.h index d8b992e..7d6d7d7 100644 --- a/fs/ext4/ext4_jbd2.h +++ b/fs/ext4/ext4_jbd2.h @@ -252,8 +252,15 @@ static inline int ext4_journal_force_commit(journal_t *journal) static inline int ext4_jbd2_file_inode(handle_t *handle, struct inode *inode) { - if (ext4_handle_valid(handle)) + if (ext4_handle_valid(handle)) { + if (unlikely(EXT4_I(inode)->jinode == NULL)) { + /* Should never happen */ + ext4_msg(inode->i_sb, KERN_CRIT, + "inode #%lu has NULL jinode", inode->i_ino); + BUG(); + } return jbd2_journal_file_inode(handle, EXT4_I(inode)->jinode); + } return 0; }