From: "J. Bruce Fields" <bfields@fieldses.org>
From: Neil Brown <neilb@cse.unsw.edu.au>

This fixes an oops on unmount (failure of the assertation at
fs/ext3/super.c:421).  Probably reproduceable just by creating and deleting a
single symlink over nfs and then unmounting the exported filesystem.

Recent change to fh_compose means dentry reference is *not* consumed, and so
usually has to be explicitly dput afterwards.  One usage was missed in that
patch, so this dput is needed.

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/fs/nfsd/vfs.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN fs/nfsd/vfs.c~nfsd-deleting-symlinks-over-nfs-causes-oops-on-unmount fs/nfsd/vfs.c
--- 25/fs/nfsd/vfs.c~nfsd-deleting-symlinks-over-nfs-causes-oops-on-unmount	Wed May 26 16:03:35 2004
+++ 25-akpm/fs/nfsd/vfs.c	Wed May 26 16:03:35 2004
@@ -1228,8 +1228,8 @@ nfsd_symlink(struct svc_rqst *rqstp, str
 		err = nfserrno(err);
 	fh_unlock(fhp);
 
-	/* Compose the fh so the dentry will be freed ... */
 	cerr = fh_compose(resfhp, fhp->fh_export, dnew, fhp);
+	dput(dnew);
 	if (err==0) err = cerr;
 out:
 	return err;
_