[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1401735504.6065.227.camel@montana.filmlight.ltd.uk>
Date: Mon, 02 Jun 2014 19:58:24 +0100
From: Roger Willcocks <roger@...mlight.ltd.uk>
To: Chuck Lever <chuck.lever@...cle.com>
Cc: Arnd Bergmann <arnd@...db.de>,
Nicolas Pitre <nicolas.pitre@...aro.org>,
linux-arch@...r.kernel.org,
Linux NFS Mailing List <linux-nfs@...r.kernel.org>,
LKML Kernel <linux-kernel@...r.kernel.org>, lftan@...era.com,
Christoph Hellwig <hch@...radead.org>, john.stultz@...aro.org,
"H. Peter Anvin" <hpa@...or.com>,
linux-fsdevel <linux-fsdevel@...r.kernel.org>,
geert@...ux-m68k.org, tglx@...utronix.de, xfs@....sgi.com,
joseph@...esourcery.com
Subject: Re: [RFC 11/32] xfs: convert to struct inode_time
On Mon, 2014-06-02 at 11:04 -0400, Chuck Lever wrote:
> NFSv2/3 timestamps are a pair of unsigned 32-bit values: one value for
> seconds since midnight GMT Jan 1, 1970, and one value for nanoseconds.
> (See the definition of nfstime3 in RFC 1813).
>
nfstime3 could be extended by redefining the otherwise unused
nanoseconds bits{31,30} as seconds{33,32}, to give a (signed) 34-bit
seconds field and an unsigned 30-bit nanoseconds field.
This could represent 1970 +/- 272 years.
Servers could indicate they can understand the extended time format by
adding a new FSINFO capability - FSF3_CANSETTIME_EX.
Clients would use a new SET_TO_CLIENT_TIME_EX time_how enum when sending
timestamps so old servers would be protected from new clients.
Old clients don't need to be protected from new servers because the
on-the-wire bit pattern for dates between 1970 and 2106 stays the same,
so they're no worse off than they were before.
Arguably the new server ought to clamp out-of-range timestamps before
sending them to old clients but that would need per-client state (and
nfs3 is stateless.)
--
Roger
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists