[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-hackers
Subject:    Re: anyone working on upgrading the msdosfs to NetBSD levels?
From:       Terry Lambert <terry () lambert ! org>
Date:       1996-07-31 18:29:44
[Download RAW message or body]

> The FAT fs primitives are done and tested and I'm currently working
> on VFAT support.

Before you get too far on that, I have the algorithm it uses to avoid
short name name space collisions.  It's not pretty, but it works, and
I think that was all Microsoft really cared about.

Unfortunately, since the struct nameidata is not yet treated as an
opaque object in a lot of places, it's not possible to do the lookup
in multiple name spaces correctly in the vfs_lookup.c, where it
belongs.

I'm also not sure about the long name space storage which is in
ISO-10646/16 (16 bit Unicode), since it is not possible to pass
Unicode across the lookup interface (this will be a problem for
any NTFS as well -- Linux is unfortunately way ahead of BSD here).

The long names are case sensitive on storage and case insensitive
on lookup.  I don't know how you could emulate this for a DOS
client (for instance) reading for a BSD mounted FS mapped to a
DOS drive letter by the emulator.  My opinion is that lookup
changes are required, including adding a bit priority vector and
name space identifier parameter to the VOP_LOOKUP.


I can't help with the Unicode stuff given the current state of the BSD
VFS; my suggestion is to punt, and treat the high byte as zero in all
cases, converting it to ISO-8859-1 (Latin 1).  This will damage utility
for anyone outside the Latin 1 scope, but that can't be helped without
the underlying VFS changes (appologies to non-Latin 1 using countries
up front).

If you get to where you need to work on name collision, let me know,
and I can describe the algorithm in a couple of pages.


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic