Patch from Andreas Gruenbacher <agruen@suse.de>

In both 2.5 and 2.4, the fs/nfsd/vfs.c:nfsd_symlink() function calls down to
notify_change().  If notify_change fails for some reason, the error code is
not converted to an nfs no-the-wire error code as is should.  The attached
patches fix that (one for 2.4, the other for 2.5).



 fs/nfsd/vfs.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletion(-)

diff -puN fs/nfsd/vfs.c~nfsd-symlink-failpath fs/nfsd/vfs.c
--- 25/fs/nfsd/vfs.c~nfsd-symlink-failpath	2003-03-17 21:33:23.000000000 -0800
+++ 25-akpm/fs/nfsd/vfs.c	2003-03-17 21:33:23.000000000 -0800
@@ -1203,7 +1203,9 @@ nfsd_symlink(struct svc_rqst *rqstp, str
 				iap->ia_mode = (iap->ia_mode&S_IALLUGO)
 					| S_IFLNK;
 				err = notify_change(dnew, iap);
-				if (!err && EX_ISSYNC(fhp->fh_export))
+				if (err)
+					err = nfserrno(err);
+				else if (EX_ISSYNC(fhp->fh_export))
 					write_inode_now(dentry->d_inode, 1);
 		       }
 		}

_