Re: 2.6.20-mm1 - Oops using Minix 3 file system

From: Daniel Aragonés
Date: Sat Feb 17 2007 - 11:44:44 EST


On 2/17/07, Cédric Augonnet <cedric.augonnet@xxxxxxxxx> wrote:

It appears that the trouble is in the count_free of file
fs/minix/bitmap.c . This procedure is actually called twice when we
issue a df command.
The point where things start to get strange is
i = ((numbits - (numblocks-1) * bh->b_size * 8) / 16) * 2; at line 36

In the first call to that procedure i have
i = 3506
bh->b_data = 0xd4e79000

Whereas in the second call i have something much different :
i = 536838736
bh->b_data = d4e78000


Well, that line is modified by my patch. The original one is:
i = ((numbits-(numblocks-1)*BLOCK_SIZE*8)/16)*2;

As you see, the constant is substituted by a variable. As you are
running under emulation, the true value of that variable ( 4096 in
standard minix3 releases, instead of the constant 1024 in minix1 and
minix2), is probably found where it should not be found, or not found
at all. And the result is what you show. Minix 3 provides for a
variable size of the blocks. Try to find what block size you are
emulating.

Also, though your dmesg shows a mounted loop partition, the minix
subpartition in it is not stated. So it cannot be accessed.

By the way, you don't need to support minix on your Linux box to run
it through an emulator, do you?

Regards

Daniel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/