sol10u2-rename-20060703
authorTom Keiser <tkeiser@gmail.com>
Mon, 3 Jul 2006 19:41:31 +0000 (19:41 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Mon, 3 Jul 2006 19:41:31 +0000 (19:41 +0000)
FIXES 34774

In s10u2 the vnode path cache code was modified so that we're no longer
guaranteed of having a valid path cache pointer for the lofs mount case.
Attached patch changes gafs_rename to deal with this. Patch also removes
unnecessary MODLOAD32 build rule from sun4x_510 case.

src/afs/SOLARIS/osi_vnodeops.c
src/libafs/MakefileProto.SOLARIS.in

index fae5817..d55387d 100644 (file)
@@ -1698,11 +1698,13 @@ gafs_rename(aodp, aname1, andp, aname2, acred)
            struct vnode *vp = AFSTOV(avcp), *pvp = AFSTOV(andp);
            
            mutex_enter(&vp->v_lock);
-           kmem_free(vp->v_path, strlen(vp->v_path) + 1);
-           vp->v_path = NULL;
+           if (vp->v_path != NULL) {
+               kmem_free(vp->v_path, strlen(vp->v_path) + 1);
+               vp->v_path = NULL;
+           }
            mutex_exit(&vp->v_lock);
-           VN_SETPATH(afs_globalVp, pvp, vp, aname2, strlen(aname2));
-           
+           vn_setpath(afs_globalVp, pvp, vp, aname2, strlen(aname2));
+
            AFS_RELE(avcp);
        }
     }
index a5295d7..f715b9e 100644 (file)
@@ -44,14 +44,15 @@ KDEFS_64 = -xarch=amd64 -xmodel=kernel
 CFLAGS=-I. -I.. -I${TOP_OBJDIR}/src/config ${FSINCLUDES} $(DEFINES) $(KDEFS) $(KOPTS) ${DBUG}
 
 # Name of directory to hold object files and libraries.
-<all -sun4x_57 -sun4x_58 -sun4x_59 -sunx86_57 -sunx86_58 -sunx86_59>
+<all -sun4x_57 -sun4x_58 -sun4x_59 -sun4x_510 -sunx86_57 -sunx86_58 -sunx86_59 -sunx86_510>
 KOBJ = MODLOAD
-<sun4x_57 sun4x_58 sun4x_59 sun4x_510 sunx86_57 sunx86_58 sunx86_59 sunx86_510>
+<sun4x_57 sun4x_58 sun4x_59 sunx86_57 sunx86_58 sunx86_59 sunx86_510>
 KOBJ = MODLOAD32 MODLOAD64
-
+<sun4x_510>
+KOBJ = MODLOAD64
 
 # This tells Makefile.common to use it's single directory build target.
-<all -sun4x_57 -sun4x_58 -sun4x_59 -sunx86_57 -sunx86_58 -sunx86_59>
+<all -sun4x_57 -sun4x_58 -sun4x_59 -sun4x_510 -sunx86_57 -sunx86_58 -sunx86_59 -sunx86_510>
 COMPDIRS = single_compdir
 INSTDIRS = single_instdir
 DESTDIRS = single_destdir