Commit 74f9f974 authored by Edward Shishkin's avatar Edward Shishkin Committed by Linus Torvalds

[PATCH] reiserfs: journal_init fix

This fixes segmentation fault when specifying bad journal device via
a mount option.

Don't pass a zero pointer to bdevname() if filp_open() returns error.
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 439bd370
...@@ -2306,13 +2306,16 @@ static int journal_init_dev( struct super_block *super, ...@@ -2306,13 +2306,16 @@ static int journal_init_dev( struct super_block *super,
if( !IS_ERR( journal -> j_dev_file ) ) { if( !IS_ERR( journal -> j_dev_file ) ) {
struct inode *jdev_inode = journal->j_dev_file->f_mapping->host; struct inode *jdev_inode = journal->j_dev_file->f_mapping->host;
if( !S_ISBLK( jdev_inode -> i_mode ) ) { if( !S_ISBLK( jdev_inode -> i_mode ) ) {
reiserfs_warning (super, "journal_init_dev: '%s' is " reiserfs_warning(super, "journal_init_dev: '%s' is "
"not a block device", jdev_name ); "not a block device", jdev_name );
result = -ENOTBLK; result = -ENOTBLK;
release_journal_dev( super, journal );
} else { } else {
/* ok */ /* ok */
journal->j_dev_bd = I_BDEV(jdev_inode); journal->j_dev_bd = I_BDEV(jdev_inode);
set_blocksize(journal->j_dev_bd, super->s_blocksize); set_blocksize(journal->j_dev_bd, super->s_blocksize);
reiserfs_info(super, "journal_init_dev: journal device: %s\n",
bdevname(journal->j_dev_bd, b));
} }
} else { } else {
result = PTR_ERR( journal -> j_dev_file ); result = PTR_ERR( journal -> j_dev_file );
...@@ -2321,11 +2324,6 @@ static int journal_init_dev( struct super_block *super, ...@@ -2321,11 +2324,6 @@ static int journal_init_dev( struct super_block *super,
"journal_init_dev: Cannot open '%s': %i", "journal_init_dev: Cannot open '%s': %i",
jdev_name, result ); jdev_name, result );
} }
if( result != 0 ) {
release_journal_dev( super, journal );
}
reiserfs_info(super, "journal_init_dev: journal device: %s\n",
bdevname(journal->j_dev_bd, b));
return result; return result;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment