]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-windows-scache-ref-leak-20061012
authorJeffrey Altman <jaltman@secure-endpoints.com>
Thu, 12 Oct 2006 06:59:25 +0000 (06:59 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Thu, 12 Oct 2006 06:59:25 +0000 (06:59 +0000)
make sure the scache mutex is held across calls to cm_SyncOpDone

(cherry picked from commit 2b96ba59194831ef298585c4f82d574a0790f3a6)

src/WINNT/afsd/cm_ioctl.c

index ea48cee17fe155e164ff376c596e6a3138eb0cd3..206adf5d1b0f360879931cc56c60fc5b07ff371f 100644 (file)
@@ -1057,7 +1057,9 @@ long cm_IoctlDeleteMountPoint(struct smb_ioctl *ioctlp, struct cm_user *userp)
                           dscp, cp, NULL, TRUE);
 
   done1:
+    lock_ObtainMutex(&scp->mx);
     cm_SyncOpDone(scp, NULL, CM_SCACHESYNC_NEEDCALLBACK | CM_SCACHESYNC_GETSTATUS);
+    lock_ReleaseMutex(&scp->mx);
 
   done2:
     cm_ReleaseSCache(dscp);
@@ -1917,7 +1919,9 @@ long cm_IoctlDeletelink(struct smb_ioctl *ioctlp, struct cm_user *userp)
                           dscp, cp, NULL, TRUE);
 
   done1:
+    lock_ObtainMutex(&scp->mx);
     cm_SyncOpDone(scp, NULL, CM_SCACHESYNC_NEEDCALLBACK | CM_SCACHESYNC_GETSTATUS);
+    lock_ReleaseMutex(&scp->mx);
 
   done2:
     cm_ReleaseSCache(dscp);