Re: Minor bug in 2.0.35 VFAT fs

Brandon S. Allbery KF8NH (allbery@kf8nh.apk.net)
Thu, 30 Jul 1998 18:50:08 -0300


In message <Pine.LNX.3.91.980730154945.30701A-100000@lynn.ci-n.com>, John
Campb
ell writes:
+-----
| I've just discovered that if I'm on a vfat partition and I issue the
| command "cd ...", it accepts it, despite the fact that there is no directory
| named "...". After this command, the current directory appears in the bash
+--->8

That's bash (not the kernel) not understanding how DOS/Windows/OS2 file
names work. Additional "." characters in a name are ignored by the (real)
FAT and VFAT (and NTFS and HPFS) filesystems, and the Linux vfat fs honors
this for compatibility.

There's no way for the kernel to feed back what it did, and bash doesn't
double-check what happened (mainly so it can pretend that symlinks are real
directories), so bash happily reports the directory as you specified it even
though it was correctly interpreted as ".." by the vfat code.

The fact that fs's other than vfat don't currently do this is considered a
bug (the vfat change was entered as a bugfix). It *does* matter when using
e.g. Wine, so probably the other fs modules will be changed to behave the
same way in the future.

(Perhaps the interpretation of additional dots should be a mount option, so
Wine/Twin/dosemu users could use the mount option to get filename
"bug-compatibility" with DOS-derived filesystems and others can get
Unix-style semantics?)

-- 
brandon s. allbery	[os/2][linux][solaris][japh]	 allbery@kf8nh.apk.net
system administrator	     [WAY too many hats]	   allbery@ece.cmu.edu
electrical and computer engineering
carnegie mellon university			   (bsa@kf8nh is still valid.)

- 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.altern.org/andrebalsa/doc/lkml-faq.html