2008-02-06 22:17:41

by Andrew Morton

[permalink] [raw]
Subject: Re: NFS EINVAL on open(... | O_TRUNC) on

On Wed, 06 Feb 2008 22:55:02 +0100
Gianluca Alberici <[email protected]> wrote:

> I finally got it. Problem and solution have been found from 6 month but
> nobody cared...up to now those servers have not been mantained, this
> problem is not discussed anywhere else than the following link.
> The bug (userspace server side i would say at this point) is well
> described from the author of an nfs-user-server patch which has not been
> managed yet. The magic hint to find it on google was 'nfs server
> utimensat' :-)
> http://marc.info/?l=linux-nfs&m=118724649406144&w=2

This is pretty significant. We have on several occasions in recent years
tightened up the argument checking on long-standing system calls and it's
always a concern that this will break previously-working applications.

And now it has happened.

If we put buggy code into the kernel then we're largely stuck with it: we
need to be back-compatible with our bugs so we don't break things like

> I have already prepared a working patch for cfsd based upon the one ive
> listed. The nfs patch is of course waiting for commit since august,
> 2007. Ill submit it to debian cfsd mantainers, hoping to have more
> chance than my predecessor.
> It doesnt seem to me that there was any kernel related issue.
> Thanks a lot again, sorry for the lots of noise i have done. I will try
> to be more appropriate next time.

That wasn't noise - it was quite valuable. Thanks for all the work you did
on this.

Given that our broken-by-unbreaking code has been out there in several
releases there isn't really any point in rebreaking it to fix this - the
offending applications need to be repaired so they'll work on 2.6.22 and
2.6.23 anyway.