Skip to contentSkip to conversation

reiserfs: fixup transaction size check for old filesystems [RESEND]

PATCH Oleg Drokin 1 participant 1 message Apr 8, 2003

lore
Share & tools
lore
#0 lore raw

Hello!

It turned out that recently introduced additional journal check breaks journal replays on filesystems created with old reiserfs tools that did not write journal parameters into superblock.

Please pull from bk://thebsh.namesys.com/bk/reiser3-linux-2.4-jcheck-fix

Diffstat:

 journal.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

Plain text patch:
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.1101 -> 1.1102
# fs/reiserfs/journal.c 1.26 -> 1.27
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/04/08 [email protected] 1.1102
# reiserfs: Fix recenly introduced journal sanity check that breaks replay on old filesystems.

#   This fixes recently introduced transaction length check. Our
#   initial checks missed the case of filesystem created with old
#   reiserfsprogs that do not write max transaction length into
#   superblock. Zeroes were written there, so all transactions were
#   considered invalid.

# --------------------------------------------
#

fs/reiserfs/journal.c +1 -1
diff -Nru a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c
@@ -1401,7 +1401,7 @@
 		     *newest_mount_id) ;
       return -1 ;
     }
-    if ( le32_to_cpu(desc->j_len) > sb_journal_trans_max(SB_DISK_SUPER_BLOCK(p_s_sb)) ) {
+    if ( le32_to_cpu(desc->j_len) > JOURNAL_TRANS_MAX ) {
       reiserfs_warning("journal-2018: Bad transaction length %d encountered, ignoring transaction\n", le32_to_cpu(desc->j_len));
       return -1 ;
     }