RFC: new NFS mount option or restore old behaviour for Solaris server bug?

Rick Macklem rmacklem at uoguelph.ca
Sat Dec 27 14:28:40 UTC 2014


Hi,

The FreeBSD9.1 and earlier NFS clients almost always (unless the
tod clock ticked to next second while the operation was in progress)
set the mtime to the server's time (xx_TOSERVER) for exclusive open.
Starting with FreeBSD9.2, the mtime would be set to the client's time
due to r245508, which fixed the code for utimes() to use VA_UTIMES_NULL.

This change tickled a bug in recent Solaris servers, which return
NFS_OK to the Setattr RPC but don't actually set the file's mode bits.
(The bug isn't tickled when mtime is set to the server's time.)
I have patches to work around this in two ways:
1 - Add a new "useservertime" mount option that forces xx_TOSERVER.
    (This patch would force xx_TOSERVER for exclusive open.)
    It permits the man page to document why it is needed-->broken Solaris servers.
2 - Use xx_TOSERVER for exclusive open always. Since this was the normal
    behaviour until FreeBSD9.2, I don't think this would cause problems or
    be a POLA violation, but I can't be sure?

I am leaning towards #2, since it avoids yet another mount option.
However, I'd like other people's opinions on which option is better,
or any other suggestions?

Thanks in advance for your comments, rick
ps: The trivial patch for #2 is attached, in case you are interested.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: setservertime.patch
Type: text/x-patch
Size: 900 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-fs/attachments/20141227/7e5056be/attachment.bin>


More information about the freebsd-fs mailing list