Re: [RFC] vfat: change the default from shortname=lower to shortname=mixed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jamie Lokier <jamie@xxxxxxxxxxxxx> writes:

> I agree with the change to "shortname=mixed" being the default.
>
> Not only does it solve problems with Linux seeing files it created
> _itself_ change, "shortname=mixed" is the only option where files
> created on all versions of Windows appear the same in Linux, and vice
> versa.  It is better than Windows itself in that respect...
>
> "shortname=winnt" is not as good.  It solves the problem of
> Linux<->itself compatibility and Linux<->Windows-NT/2000/XP/Vista
> compatibility, but not Linux<->Windows-95/98/ME compatibility.
>
> I don't see any problems with changing the option from it's default,
> for filesystems which were written as VFAT by any OS.  For filesystems
> written as plain FAT, it may change them to appear as upper case in
> Linux, when they previously showed as lower case.  If there is a
> reliable way to detect filenames written by a plain FAT system, it
> might be desirable to show the names as lower case from them.
>
> Below are my notes, when I had to add "shortname=mixed" to a program
> because of user bug reports when they created files on various
> versions of Windows and they didn't work on an embedded Linux media
> player.  Feel free to use the notes in the Changelog or documentation.
>
>     Why use shortname=mixed.
>
>     This affects 8.3 filename reading and creation for maximum
>     compatibility with the behaviour of all versions of Windows.
>
>     There is a classic conflict between Windows 95 derivatives and
>     Windows NT derivatives, which causes spurious case changes when
>     moving some file names between them on removable media.  This
>     Linux setting manages to be compatible with both of them reliably,
>     and is therefore superior to all versions of Windows.
>
>     1. Filename reading uses the algorithm of Windows NT: if there
>        is only an 8.3 short name, its case is calculated from flags in
>        byte 12 of the short name entry.
>
>        This is needed for compatibility with files written by Windows
>        NT derivatives (including 2000, XP and Vista).  When Windows NT
>        creates two files called "PLAYLIST" and "file.ogg", the default
>        Linux algorithm ("shortname=lower") would see them as
>        "playlist" and "file.ogg" together, and the Windows 95
>        algorithm would see them as "PLAYLIST" and "FILE.OGG" together.
>        Both cause problems.
>
>     2. Filename creation uses the algorithm of Windows 95: Linux
>        creates a long name entry unless the original name fits into
>        8.3 and is entirely upper case.  This is more compatible than
>        shortname=winnt, because it creates a long name in more cases
>        to remove uncertainty.
>
>        This is needed for compatability with files created by Linux
>        and read by Windows 95 derivatives (and MS-DOS).  Windows 95
>        derivatives and MS-DOS interpret short name entries as upper
>        case, even when case flags are set in byte 12.  By storing a
>        long name entry, files stored by Linux will be read in the
>        desired case by all versions of Windows.
>
> The patch has my
>
> Signed-Off-By: Jamie Lokier <jamie@xxxxxxxxxxxxx>

Thanks for comment. I don't know whether signed-off-by is desirable for
this, so I'll add one Acked-by: simply if I apply this. Is it ok?

Thanks.
-- 
OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux