I think the nfs reexporting is working again now in trunk, but I had to make another minor dcache change.

The new pvfs d_delete() function (needed to get the simul stat cases right) was always returning 1, which means that pvfs was always encouraging the vfs to uncache our dentries (and therefore inodes) when it had a safe opportunity.

The kernel nfs daemon however, drops references to inodes sometimes and expects to be able to retrieve them later just using the inode number. This doesn't work in PVFS if we no longer have the inode cached, because an inode number by itself isn't enough to reconstruct the PVFS handle (the inode is only 32 bits; see iget5 etc.). The normal solution that many file systems use is to override the default export ops so that you can tell knfsd to use a better key than the inode number to reacquire inodes when it needs them. Long story, but I believe this solution would be somewhat hard to implement in PVFS.

I instead adjusted the d_delete() function so that it only returns 1 when the inode is bad. I tweaked the revalidate inode function to make certain it marks the inode bad on failure. This should keep the simul test case working but keep the vfs from uncaching trustworthy PVFS dentries/inodes that knfsd might want to use again. They entries will still be revalidated when the time comes.

This isn't ideal, but as far as I can tell it gets us back to the same nfs re-exporting behavior we had in 2.7.0.

-Phil

Robert Latham wrote:
On Fri, Jan 04, 2008 at 12:16:52PM -0500, Phil Carns wrote:
I think something has changed since 2.7.0 that causes some trouble for NFS reexporting. If I NFS mount PVFS2 from the 2.7.0 release, things look fine as far as I can tell. If I NFS mount PVFS2 from a current trunk build, I get this behavior:

Hey Phil

The nightly builds for both HEAD and the 2.7 branch have been in a bad
state for a bit.  System interface and MPI-IO tests pass, but VFS
tests (specifically, dbench) hang. I'm surprised to see iget4/iget5
complaints, but I suspect once the nightlies pass then NFS exporting
will work better too.

I'll probably poke around at it a little bit, but I wanted to go ahead and record it on the mailing list and see if anyone has suggestions.

There aren't *too* many vfs-related changesets in CVS since the last
"known good" revision.  If you're looking for an angle of attack on
this one, maybe see if any of those changesets look suspect to you.

==rob


_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers

Reply via email to