--- linux-2.5.7/fs/reiserfs/journal.c.orig Thu Mar 28 14:37:40 2002 +++ linux-2.5.7/fs/reiserfs/journal.c Thu Mar 28 14:44:25 2002 @@ -2043,6 +2043,7 @@ SB_BLOCKSIZE(p_s_sb)); if (!bhjh) { printk("sh-459: unable to read journal header\n") ; + release_journal_dev(p_s_sb, journal); return 1 ; } jh = (struct reiserfs_journal_header *)(bhjh->b_data); @@ -2059,7 +2060,8 @@ jh->jh_journal.jp_journal_magic, jname, sb_jp_journal_magic(rs), fname); brelse (bhjh); - return 1 ; + release_journal_dev(p_s_sb, journal); + return 1 ; } SB_JOURNAL_TRANS_MAX(p_s_sb) = le32_to_cpu (jh->jh_journal.jp_journal_trans_max); @@ -2161,11 +2163,13 @@ SB_JOURNAL_LIST(p_s_sb)[0].j_list_bitmap = get_list_bitmap(p_s_sb, SB_JOURNAL_LIST(p_s_sb)) ; if (!(SB_JOURNAL_LIST(p_s_sb)[0].j_list_bitmap)) { reiserfs_warning("journal-2005, get_list_bitmap failed for journal list 0\n") ; + release_journal_dev(p_s_sb, journal); return 1 ; } if (journal_read(p_s_sb) < 0) { reiserfs_warning("Replay Failure, unable to mount\n") ; free_journal_ram(p_s_sb) ; + release_journal_dev(p_s_sb, journal); return 1 ; } SB_JOURNAL_LIST_INDEX(p_s_sb) = 0 ; /* once the read is done, we can set this .