Subject: Re: The role of case insensitivity in NFSv4

From: Brent Callaghan <[email-masked]>
Date: Tue, 27 Jun 2000 16:40:17 -0700 (PDT)

Neil Brown writes:
>  The issue of case insensitivity on file names in NFSv4 came up (by a
>  fairly circuitous route) in linux-kernel recently and that has
>  started me thinking more deeply about it.

I don't think I understand the problem.  It's certainly reasonable
that the client have some idea of how the server might mangle
a filename - but I don't see that it has anything to do with
identifying a "relationship" between filenames.  The simplest way
for a client to tell whether two names refer to the same object
is to check the fileid attribute.

I don't like attributes that refer specifically to OS features
like "8DOT3".  This is the thin edge of the wedge that splits
a v4 filesystem into semantic classes according to filesystem
types, e.g. FAT32, MAC, HSFS etc.  It makes client much harder
to code.

Rather than attempt to codify a multitide of manglings in
a few attributes, it might be simpler just to have a CREATE
option that does nothing but pass a list of filenames to the server
and have the server return the mangled versions.  The client
could then look at the before and after and infer what kind of
manglings to expect in future.  I'm assuming a future minor rev
here of course ...

A practical difficulty with implementing these kinds of name
attributes, at least with VFS-style interfaces, is that there's
no easily available filesystem attribute that lets the NFS server
figure out what kind of name mangling will happen. For instance,
the Solaris NFS server can't easily tell whether it's interacting
with a UFS, HSFS, or FAT32 filesystem.  That knowledge is carefully
hidden behind the vnode.

	Brent

---

From: Neil Brown <[email-masked]>
Date: Wed, 28 Jun 2000 10:11:08 +1000 (EST)

> is to check the fileid attribute.

Maybe I was racing ahead of myself.  Lets try it like this.

 Question: What is the point of the "case_insensitive" attribute (or
   indeed case_preserving)?
   In particular, how you would expect a client to ever use it?

> with a UFS, HSFS, or FAT32 filesystem.  That knowledge is carefully

This was exactly how the topic came up in linux-kernel.  We were talking
about extensions to the VFS interface to handle NFS better (we don't
yet have filehandle <-> dentry (sort of vaguely like vnode)
interfaces, so nfsd has to fudge things a bit).  In that context I
suggested that we might also need an interface to get attributes of
the filesystem like case_insensitivity for NFSv4, and people wondered
what that would mean in practice.

NeilBrown