[PATCH] reiserfs oneliner

From: andersg@0x63.nu
Date: Fri Dec 28 2001 - 12:42:44 EST


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/



This archive was generated by hypermail 2b29 : Mon Dec 31 2001 - 21:00:17 EST