Message ID | 1289510598-15315-1-git-send-email-sheng.yang@oracle.com |
---|---|
State | Superseded, archived |
Headers | show |
On 11/11/10 3:23 PM, yangsheng wrote: > The jbd2_stats_proc_init() was placed on wrong location in > jbd2_journal_init_dev(). This may cause /proc/fs/jdb2/<dev>/* > cannot be created when using external journal device. > --- > fs/jbd2/journal.c | 19 ++++++++++--------- > 1 files changed, 10 insertions(+), 9 deletions(-) adding linux-ext4 to cc: > 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) { -- 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/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) {