2.4.0 FAT FS is broken for 2028 blocksize

From: Yuri Pudgorodsky (yur@asplinux.ru)
Date: Fri Sep 08 2000 - 10:06:11 EST


Hi!

Recently I tried to read old VFAT-formatted MO disk with 2.4.0-test7 kernel.
Long time ago in the days of 2.3.x such operation caused no problems.

Today 2.4.0-testX kernels OOPSes at fat_file_read(), trying to
dereference NULL pointer at (inode->i_sb)->cvf_format->cvf_file_read

Due to 2028 bytes/sector nature of 640MB MO disk,
cvf_format has been initialied to bigblock_cvf.

Here is where a nice NULL pointer coming from,
exactly from between default_fat_bmap() and
default_fat_file_write().

What is this all about?
Incomplete implementation or some kind of typo?

struct cvf_format bigblock_cvf = {
 0, /* version - who cares? */
 "big_blocks",
 0, /* flags - who cares? */
 NULL,
 NULL,
 NULL,
 bigblock_fat_bread,
 bigblock_fat_bread,
 bigblock_fat_brelse,
 bigblock_fat_mark_buffer_dirty,
 bigblock_fat_set_uptodate,
 bigblock_fat_is_uptodate,
 bigblock_fat_ll_rw_block,
 default_fat_access,
 NULL,
 default_fat_bmap,
 NULL,
^^^^^^
 default_fat_file_write,
 NULL,
 NULL
};

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



This archive was generated by hypermail 2b29 : Fri Sep 15 2000 - 21:00:10 EST