[Linux-cachefs] Adventures in NFS re-exporting
bfields at fieldses.org
bfields at fieldses.org
Thu Oct 1 19:51:42 UTC 2020
On Thu, Oct 01, 2020 at 07:29:51PM +0000, Trond Myklebust wrote:
> On Thu, 2020-10-01 at 15:26 -0400, bfields at fieldses.org wrote:
> > On Thu, Oct 01, 2020 at 07:24:42PM +0000, Trond Myklebust wrote:
> > > NFS4_CHANGE_TYPE_IS_MONOTONIC_INCR should normally be good enough
> > > to
> > > allow the above optimisation, yes. I'm less sure about whether or
> > > not
> > > we are correct in returning NFS4_CHANGE_TYPE_IS_MONOTONIC_INCR when
> > > in
> > > fact we are adding the ctime and filesystem-specific change
> > > attribute,
> > > but we could fix that too.
> >
> > Could you explain your concern?
> >
>
> Same as before: that the ctime could cause the value to regress if
> someone messes with the system time on the server. Yes, we do add in
> the change attribute, but the value of ctime.tv_sec dominates by a
> factor 2^30.
Got it.
I'd like to just tell people not to do that....
If we think it's too easy a mistake to make, I can think of other
approaches, though filesystem assistance might be required:
- Ideal would be just never to expose uncommitted change attributes to
the client. Absent persistant RAM that could be terribly expensive.
- It would help just to have any number that's guaranteed to increase
after a boot. Of course, if would to go forward at least as reliably
as the system time. We'd put it in the high bits of the on-disk
i_version. (We'd rather not just mix it into the returned change
attribute as we do with ctime, because that would cause clients to
discard all their caches unnecessarily after boot.)
--b.
More information about the Linux-cachefs
mailing list