Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Dec 2014 11:19:14 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        Rick Macklem <rmacklem@uoguelph.ca>
Cc:        FreeBSD Filesystems <freebsd-fs@freebsd.org>, Konstantin Belousov <kib@freebsd.org>
Subject:   Re: RFC: new NFS mount option or restore old behaviour for Solaris server bug?
Message-ID:  <3494907.XSdoyu9NPX@ralph.baldwin.cx>
In-Reply-To: <1190766207.2826601.1419690496079.JavaMail.root@uoguelph.ca>
References:  <1190766207.2826601.1419690496079.JavaMail.root@uoguelph.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
On Saturday, December 27, 2014 09:28:16 AM Rick Macklem wrote:
> 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?

Definitely prefer #2.  In general I think we want to use TOSERVER timestamps
aside from an explicit call to utimes() with a non-NULL argument (i.e. if
userland wants to force a specific timestamp).  I think any implicit timestamps
should be TOSERVER.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3494907.XSdoyu9NPX>