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

[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
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -2309,10 +2309,13 @@ static int journal_init_dev( struct super_block *super,
			reiserfs_warning(super, "journal_init_dev: '%s' is "
					 "not a block device", jdev_name );
			result = -ENOTBLK;
			release_journal_dev( super, journal );
		} else  {
			/* ok */
			journal->j_dev_bd = I_BDEV(jdev_inode);
			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 {
		result = PTR_ERR( journal -> j_dev_file );
@@ -2321,11 +2324,6 @@ static int journal_init_dev( struct super_block *super,
				  "journal_init_dev: Cannot open '%s': %i",
				  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;
}