]> git.hungrycats.org Git - linux/commitdiff
[PATCH] Fix default value for commit interval for older reiserfs filesystems.
authorAndrew Morton <akpm@osdl.org>
Mon, 19 Apr 2004 05:06:16 +0000 (22:06 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Mon, 19 Apr 2004 05:06:16 +0000 (22:06 -0700)
From: Bart Samwel <bart@samwel.tk>

The reiserfs patch that adds support for "commit=0" saves the default max
commit age in a variable when the fs is originally mounted, so that it can
later restore it.  Unfortunately it makes some mistakes with that:

- The default is not saved when the original mount has a commit=NNN option.

- The default is not correctly saved for older reiserfs filesystems, where
  the default was not stored on disk.

This patch fixes these mistakes.

fs/reiserfs/journal.c

index 78b95f54eb2fef08fd1b4671abb667efc2af6647..f1624617cc9db54233d78c6aa4dd56de590dbc02 100644 (file)
@@ -2304,14 +2304,8 @@ int journal_init(struct super_block *p_s_sb, const char * j_dev_name, int old_fo
      
   SB_JOURNAL_TRANS_MAX(p_s_sb)      = le32_to_cpu (jh->jh_journal.jp_journal_trans_max);
   SB_JOURNAL_MAX_BATCH(p_s_sb)      = le32_to_cpu (jh->jh_journal.jp_journal_max_batch);
-  if (commit_max_age != 0) {
-      SB_JOURNAL_MAX_COMMIT_AGE(p_s_sb) = commit_max_age;
-      SB_JOURNAL_MAX_TRANS_AGE(p_s_sb) = commit_max_age;
-  } else {
-      SB_JOURNAL_MAX_COMMIT_AGE(p_s_sb) = le32_to_cpu (jh->jh_journal.jp_journal_max_commit_age);
-      SB_JOURNAL_DEFAULT_MAX_COMMIT_AGE(p_s_sb) = SB_JOURNAL_MAX_COMMIT_AGE(p_s_sb);
-      SB_JOURNAL_MAX_TRANS_AGE(p_s_sb)  = JOURNAL_MAX_TRANS_AGE;
-  }
+  SB_JOURNAL_MAX_COMMIT_AGE(p_s_sb) = le32_to_cpu (jh->jh_journal.jp_journal_max_commit_age);
+  SB_JOURNAL_MAX_TRANS_AGE(p_s_sb)  = JOURNAL_MAX_TRANS_AGE;
 
   if (SB_JOURNAL_TRANS_MAX(p_s_sb)) {
     /* make sure these parameters are available, assign it if they are not */
@@ -2350,6 +2344,14 @@ int journal_init(struct super_block *p_s_sb, const char * j_dev_name, int old_fo
       SB_JOURNAL_MAX_BATCH(p_s_sb) = (SB_JOURNAL_TRANS_MAX(p_s_sb)) * 9 / 10 ;
     }
   }
+
+  SB_JOURNAL_DEFAULT_MAX_COMMIT_AGE(p_s_sb) = SB_JOURNAL_MAX_COMMIT_AGE(p_s_sb);
+
+  if (commit_max_age != 0) {
+      SB_JOURNAL_MAX_COMMIT_AGE(p_s_sb) = commit_max_age;
+      SB_JOURNAL_MAX_TRANS_AGE(p_s_sb) = commit_max_age;
+  }
+
   printk ("Reiserfs journal params: device %s, size %u, "
          "journal first block %u, max trans len %u, max batch %u, "
          "max commit age %u, max trans age %u\n",