RE: recent nfs change causes autofs regression

Trond Myklebust
2007-08-30T23:38:10Z

On Thu, 2007-08-30 at 16:30 -0700, Hua Zhong wrote:

> There are two disjoint directories. I am wondering why there would be cache
> coherency issues in this case? Is this Linus nfs implementation specific or
> all other Unix systems all have the same issue?

How is the NFS client to know that these directories are disjoint, or
that no-one will ever create a hard link from one directory to another?
To my knowledge, the only way to ensure this is to put them on different
disk partitions.

I don't know if all Unix systems have this issue, but I have been told
that Solaris at least has it.

> > If you know what you are doing, then there is an option which allows
> > you to override the default behaviour.
> >
> > > More importantly, it is a regression. My understanding is that unless
> > > absolutely necessary we do not introduce a "feature" that breaks
> > > working setups.
> >
> > Your turn to define what you mean by "working"? In my book that means
> > "a setup that doesn't include unexpected or unintended behaviour".
>
> "working" as in "I can mount the directory and do my work". And there has
> never been any problems as far as I know.

That is too narrow a definition: the minimum should be "everyone can
mount their directories and do their work". Your particular setup may be
safe, but that is why we have overrides: the default should be for the
kernel to be conservative, and to _tell_ users what it thinks is wrong.

> > Not being able to notice cache coherency failures on a file that is
> > mounted in two different places with two different sets of mount
> > options counts as "unexpected behaviour".
> >
> > Not being able to notice that your mount options have been overridden
> > by the kernel also counts as "unexpected behaviour".
>
> Fine. These are all very nice theories, but I just want to report this
> regression and hope it won't cause any big problems for any users out there.
> In the mean time, I am returning to 2.6.22.

Your choice.

Trond