Skip to contentSkip to conversation

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

PATCH New Hans Reiser 1 participant 1 message Apr 10, 2002

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ReiserFS 6 of 13, please apply, (resending, may be a duplicate)

Quoted 1 line

From - Wed Apr 10 15:37:37 2002

X-Mozilla-Status2: 00000000
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: (qmail 13255 invoked from network); 10 Apr 2002 11:21:50 -0000
Received: from angband.namesys.com ([email protected])
by thebsh.namesys.com with SMTP; 10 Apr 2002 11:21:50 -0000
Received: by angband.namesys.com (Postfix on SuSE Linux 7.3 (i386), from userid 521)

	id DF3DE4D1B34; Wed, 10 Apr 2002 15:21:50 +0400 (MSD)

Date: Wed, 10 Apr 2002 15:21:50 +0400
From: Oleg Drokin <[email protected]>
To: [email protected]
Subject: [PATCH] 2.5.8-pre3 patch 6 of 13
Message-ID: <[email protected]>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.3.22.1i

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

fs/reiserfs/journal.c renamed from fs/reiserfs/journal.c.orig +5 -1
@@ -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