[PATCH] reiserfs oneliner

andersg@0x63.nu
Fri, 28 Dec 2001 18:42:44 +0100


This patch removes an assignment in super.c in reiserfs that caused deadlock
when mounting my reiser-filesystems.

the original code looks like this:

size = block_size(s->s_dev);
sb_set_blocksize(s, size);

/* read block (64-th 1k block), which can contain reiserfs super block */
if (read_super_block (s, REISERFS_DISK_OFFSET_IN_BYTES)) {
// try old format (undistributed bitmap, super block in 8-th 1k block of a device)
sb_set_blocksize(s, size);
if (read_super_block (s, REISERFS_OLD_DISK_OFFSET_IN_BYTES))
goto error;
else
old_format = 1;
}
s->s_blocksize = size;

If read_super_block() changes the blocksize in the superblock it shouldn't
be restored again, should it?

With the following patch i can mount my reiserfs:es without deadlock.

--- linux-2.5.2-pre3/fs/reiserfs/super.c Fri Dec 28 09:03:32 2001
+++ linux-2.5.2-pre3-lvmfix-reiserfix/fs/reiserfs/super.c Fri Dec 28 18:19:49 2001
@@ -637,7 +637,6 @@
else
old_format = 1;
}
- s->s_blocksize = size;

s->u.reiserfs_sb.s_mount_state = SB_REISERFS_STATE(s);
s->u.reiserfs_sb.s_mount_state = REISERFS_VALID_FS ;

-
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/