Messages in this thread Patch in this message | | | From | Uwe Bonnes <> | Date | Tue, 8 Aug 2000 23:16:55 +0200 (MEST) | Subject | Bug in UMSDOS, was: Re: Bug in DOSFS_ReadDir? |
| |
Hallo,
as David Parker ( and another person) found out, UMSDOS filesystems show broken behaviour under Wine ( at least up to 2.2.16). File and Directory creation is inconsistant when filenames outside the FAT 8.3 namedomain is involved. This is caused be UMSDOS misbehaving: UMSDOS does not store the long filename in the area reserved for long filenames in VFAT. As long as one doesn't want to mount the filesystem at a later time with VFAT, this wouldn't disturb to much. However UMSDOS forwards all unknown IOCTLs to the MSDOS base driver. This is where the problem happens. Wine uses the VFAT_IOCTL_READDIR_BOTH ioctl to retrieve both the short and long filename and gets an invaild long filename.
Short range fix:
- Add the VFAT_IOCTL_READDIR_BOTH ioctl to the list of ioctls not passed to MSDOS fs driver. That way Wine get's a failure on the try to use the VFAT_IOCTL_READDIR_BOTH ioctl and handles things like on ext2. A fix is appended.
Right fix: - Do not only store the long filename in the --linux-.--- file but also in the VFAT longfilename area.
Is anyone mantaining the UMSDOS filesystem?
Bye
Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de
Free Software: If you contribute nothing, expect nothing -- --- linux/fs/umsdos/ioctl.c~ Tue Jan 4 19:12:24 2000 +++ linux/fs/umsdos/ioctl.c Tue Aug 8 22:36:16 2000 @@ -92,7 +92,8 @@ && cmd != UMSDOS_UNLINK_DOS && cmd != UMSDOS_RMDIR_DOS && cmd != UMSDOS_STAT_DOS - && cmd != UMSDOS_DOS_SETUP) + && cmd != UMSDOS_DOS_SETUP + && cmd != VFAT_IOCTL_READDIR_BOTH) return fat_dir_ioctl (dir, filp, cmd, data_ptr); /* #Specification: ioctl / acces - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |