2004-04-06 11:25:44

by achurch

[permalink] [raw]
Subject: [PATCH] ext2fs sb= mount option fix (kernel 2.4.25)

The following patch fixes a bug in the processing of the sb=
(alternate superblock) mount option for ext2: for devices with 1024-byte
blocks, the value from the option is never actually used. This patch is
for kernel 2.4.25. 2.6.5 also has an issue with sb=, and I'll send a patch
for that separately.

--Andrew Church
[email protected]
http://achurch.org/

---------------------------------------------------------------------------

--- linux-2.4.25-orig/fs/ext2/super.c Wed Feb 18 22:36:31 2004
+++ fs/ext2/super.c Mon Apr 5 09:23:19 2004
@@ -427,7 +427,7 @@
unsigned short resuid = EXT2_DEF_RESUID;
unsigned short resgid = EXT2_DEF_RESGID;
unsigned long block;
- unsigned long logic_sb_block = 1;
+ unsigned long logic_sb_block;
unsigned long offset = 0;
kdev_t dev = sb->s_dev;
int blocksize = BLOCK_SIZE;
@@ -465,6 +465,8 @@
if (blocksize != BLOCK_SIZE) {
logic_sb_block = (sb_block*BLOCK_SIZE) / blocksize;
offset = (sb_block*BLOCK_SIZE) % blocksize;
+ } else {
+ logic_sb_block = sb_block;
}

if (!(bh = sb_bread(sb, logic_sb_block))) {