Re: [regression] NFS readdir change break fully cached nfs root

From: Nick Bowler
Date: Wed Nov 03 2010 - 12:24:52 EST


On 2010-11-02 17:05 -0400, Trond Myklebust wrote:
> On Tue, 2010-11-02 at 19:00 +0100, Andi Kleen wrote:
> > My NFS root test systems stopped booting with 2.6.37-rc1. It just
> > hangs after entering user space.
[...]
> Does the following patch help?
[...]
> NFS: Fix a couple of regressions in readdir.

I just ran into this issue with git today, where some operations locked
up permanently (seemed to be an infinite readdir loop as described
elsewhere in this thread).

I applied this patch, and it solves the lockups, but there's a new
problem: the directory list sometimes comes back _empty_!

Here's the test script I used:

#!/bin/sh -e

mkdir gittest
cd gittest
git init

for i in `seq 500`
do
printf 'Hello\nWorld!\n' > $i.txt
done

git add ./*.txt
git commit -m 'Initial Commit'
sed -i 1d ./*.txt
git stash
git stash pop

echo 'Directory listing:'
ls

the 'ls' at the end prints nothing when the directory actually contains
500 files. If we insert an 'ls' just before the 'git stash pop', that
one prints the full listing. Touching the directory afterwards makes
the listings work again.

The script works fine on 2.6.36.

--
Nick Bowler, Elliptic Technologies (http://www.elliptictech.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/