From: Ludger Kunz (ludger.kunz@fernuni-hagen.de)
Date: 02/11/93


From: ludger.kunz@fernuni-hagen.de (Ludger Kunz)
Subject: Bug in msdos-fs/linux 0.99p5
Date: 11 Feb 1993 05:20:44 -0500

Hello,

yesterday i compiled Linux 0.99p5. Everything worked fine until
i tried to cp some files onto a msdos-floppy.
After mounting the drive, i used the normal "cp"-command.
Everytime i tried this, i got the following error-message:
$ cp archive/vgalib11.tar.Z /dosd/tmp/xxx
Unable to handle kernel paging request at address c000000d
Oops: 0000
EIP: 0008:000354D9
EFLAGS: 00010246
fs: 0017
base: 00000000, limit: C0000000
Pid: 56, process nr: 14
8b 56 0c 8b 4e 30 8b 41 3c 39
Segmentation fault
$

After looking in "system.map" for the adress i found the
place, where the bug came from:

In linux 0.99p5, the calling of the function "notify_change" has
changed. In pl4, "struct inode * inode" was the only parameter.
Now, an integer parameter flags has benn added. The function
"msdos_notify_change" is not changed. Therefor, the parameter
"flag" is taken as an adress to the struct inode, leading to the above
error.

After i changed the declaration of "msdos_notify_change", everything works
fine. I only added the parameter "flags", but doesn't make any use of it.
Maybe someone can do this.

mfg

lket