Messages in this thread Patch in this message | | | Date | Fri, 28 Dec 2001 18:42:44 +0100 | Subject | [PATCH] reiserfs oneliner | From | andersg@0x63 ... |
| |
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/
| |