From mboxrd@z Thu Jan 1 00:00:00 1970 From: yangsheng Subject: [PATCH] V2 jbd2_stats_proc_init wrong place. Date: Fri, 12 Nov 2010 05:23:18 +0800 Message-ID: <1289510598-15315-1-git-send-email-sheng.yang@oracle.com> Cc: yangsheng To: linux-fsdevel@vger.kernel.org Return-path: Received: from rcsinet10.oracle.com ([148.87.113.121]:20745 "EHLO rcsinet10.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757142Ab0KKVXk (ORCPT ); Thu, 11 Nov 2010 16:23:40 -0500 Received: from rcsinet13.oracle.com (rcsinet13.oracle.com [148.87.113.125]) by rcsinet10.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id oABLNc3u028065 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 11 Nov 2010 21:23:39 GMT Received: from acsmt355.oracle.com (acsmt355.oracle.com [141.146.40.155]) by rcsinet13.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id oABJ245e009977 for ; Thu, 11 Nov 2010 21:23:38 GMT Sender: linux-fsdevel-owner@vger.kernel.org List-ID: The jbd2_stats_proc_init() was placed on wrong location in jbd2_journal_init_dev(). This may cause /proc/fs/jdb2//* cannot be created when using external journal device. --- fs/jbd2/journal.c | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-) diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index 13b0a92..a435710 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c @@ -897,9 +897,18 @@ journal_t * jbd2_journal_init_dev(struct block_device *bdev, if (!journal) return NULL; + journal->j_dev = bdev; + journal->j_fs_dev = fs_dev; + journal->j_blk_offset = start; + journal->j_maxlen = len; + bdevname(journal->j_dev, journal->j_devname); + p = journal->j_devname; + while ((p = strchr(p, '/'))) + *p = '!'; + jbd2_stats_proc_init(journal); + /* journal descriptor can store up to n blocks -bzzz */ journal->j_blocksize = blocksize; - jbd2_stats_proc_init(journal); n = journal->j_blocksize / sizeof(journal_block_tag_t); journal->j_wbufsize = n; journal->j_wbuf = kmalloc(n * sizeof(struct buffer_head*), GFP_KERNEL); @@ -908,14 +917,6 @@ journal_t * jbd2_journal_init_dev(struct block_device *bdev, __func__); goto out_err; } - journal->j_dev = bdev; - journal->j_fs_dev = fs_dev; - journal->j_blk_offset = start; - journal->j_maxlen = len; - bdevname(journal->j_dev, journal->j_devname); - p = journal->j_devname; - while ((p = strchr(p, '/'))) - *p = '!'; bh = __getblk(journal->j_dev, start, journal->j_blocksize); if (!bh) { -- 1.7.2.3