Handling NFS shares

Corinna Vinschen corinna-cygwin@cygwin.com
Tue May 20 16:34:00 GMT 2008

On May 20 18:16, Corinna Vinschen wrote:
> Hi,
> I just uploaded 1.7.0-11 to the release-2 area.  The main change is that
> Cygwin is now NFS-aware.  I put a lot of debugging effort into how NFS
> is handled by Interix and I figured out the (hitherto) undocumented
> details by using WinDbg.  Actually it's quite simple if you know how to
> do it.  The NFS client is using Extended Attributes to communicate the
> non-Windows details and actually you get pretty much the information
> send by the NFS server unchanged, per RFC 1813.
> While I'm writing this, it occurs to me that I missed to add the
> necessary mode bit information to the mkdir call, so mkdir doesn't set
> the mode on the dir correctly.  Bummer.  It's an easy change but it
> requires another upload, obviously.

I'm just going to upload 1.7.0-12 which fixes that.

> What's also not working is the uid/gid mapping from Cygwin uid/gid to
> UNIX uid/gid.  This requires access to the name mapping, either by
> accessing the name mapping server, or by accessing active directory.  So
> far I don't know how do do any of that.
> Anyway, NFS access already works quite nicely for me, better than
> accessing my Samba shares!  With this new functionality, maybe I switch
> to NFS entirely at one point.

If that doesn't sound amazing enough, what amazes me most is that Cygwin
can read *and* write real symlinks on the NFS share now.  You know, the
kind of symlink which is also a symlink for the Unix-based OS providing
the NFS share.  Except for the missing uid/gid mapping, this is really
exciting to me.

Oh, btw., this change also introduces a tweak to the symlink handling
which speeds up path_conv by roughly 10% (in my tests) when accessing
existing files.  Since we now have an open handle in symlink_info::check
anyway, it calls fs_info::update right there.  This doesn't only allow
to recognize NFS shares before trying to read the symlink EA, it also
avoids having to open the file more often then necessary.


Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

More information about the Cygwin-developers mailing list