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>