diff -r 98865ed5c2e7 -r c3555cdf52c2 usr/src/uts/common/fs/nfs/nfs4_srv.c --- a/usr/src/uts/common/fs/nfs/nfs4_srv.c Mon Dec 19 10:24:57 2005 -0800 +++ b/usr/src/uts/common/fs/nfs/nfs4_srv.c Mon Dec 19 12:21:33 2005 -0800 @@ -3993,6 +3993,18 @@ VN_RELE(tvp); } } + if (error == 0) { + char *tmp; + + /* fix the path name for the renamed file */ + mutex_enter(&srcvp->v_lock); + tmp = srcvp->v_path; + srcvp->v_path = NULL; + mutex_exit(&srcvp->v_lock); + vn_setpath(rootdir, ndvp, srcvp, nnm, nlen - 1); + if (tmp != NULL) + kmem_free(tmp, strlen(tmp) + 1); + } if (in_crit_src) nbl_end_crit(srcvp);