[PATCH] ReiserFS 6 of 13, please apply, (resending, may be a duplicate)

From: Hans Reiser (reiser@namesys.com)
Date: Wed Apr 10 2002 - 09:53:00 EST


attached mail follows:


This patch solves a problem where separate journal device was not freed
if journal initialisation failed

--- linux-2.5.8-pre2/fs/reiserfs/journal.c.orig Mon Apr 8 14:00:50 2002
+++ linux-2.5.8-pre2/fs/reiserfs/journal.c Mon Apr 8 15:31:43 2002
@@ -2049,6 +2049,7 @@
                    SB_ONDISK_JOURNAL_1st_BLOCK(p_s_sb) + SB_ONDISK_JOURNAL_SIZE(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);
@@ -2065,7 +2066,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);
@@ -2165,11 +2167,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

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Apr 15 2002 - 22:00:16 EST