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/
This archive was generated by hypermail 2b29 : Tue Aug 15 2000 - 21:00:16 EST