NFS regression in 2.6.37.1 (current stable)

From: Dr Andrew John Hughes
Date: Thu Mar 10 2011 - 13:54:37 EST


[Please CC me on responses as I'm not subscribed]

Hi,

I seem to have uncovered a regression in the NFS code between 2.6.37 and 2.6.37.1
caused by this changeset:

commit 55ea499d60aefa3d03a77fc8590c26b5881faa92
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Sat Jan 8 17:45:38 2011 -0500
NFS: Don't use vm_map_ram() in readdir
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.37.y.git;a=commit;h=6650239a4b01077e80d5a4468562756d77afaa59

With this change applied, copying of files between NFS and non-NFS
mounts seems to be broken. The easiest way I've found to replicate
this myself is to use a VCS to do a clone of a tree on a NFS mount to
a directory on a non-NFS mount. I used Mercurial, as I had Mercurial
trees to hand from work on IcedTea, but I assume doing it with a git
tree such as the linux tree would also work. The idea is to do
something which involves copying over a bunch of directories and
checking the result is readable.

$ hg clone $HOME/projects/openjdk/icedtea6-hg
destination directory: icedtea6-hg
updating to branch default
abort:
data/contrib/templater/hotspot/src/cpu/CPU/vm/bytecodeInterpreter_CPU.inline.hpp.i@16d04ce16287:
no match found!

In the above, $HOME is an NFS mount and $PWD is a local reiserfs
partition. I initially hit failures doing builds with source on $HOME
and the build directory on a local reiserfs partition. In that
scenario, it would fail as not being able to find files that should
have been copied over.

Reverting the changeset fixes the issue. 2.6.37.2 still has the bug.
I haven't checked 2.6.37.3 yet but I didn't see any NFS changes in there.
--
Andrew :)

Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/