windows-freelance-20080301
authorJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 1 Mar 2008 17:43:16 +0000 (17:43 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 1 Mar 2008 17:43:16 +0000 (17:43 +0000)
LICENSE MIT

when support for multiple valid buffer data versions was added
forget to remove the force dv change from the freelance code.
this broken automatic additions of new mount points.

src/WINNT/afsd/afsd.h
src/WINNT/afsd/afsd_init.c
src/WINNT/afsd/cm_freelance.c
src/WINNT/afsd/cm_scache.c

index 2fdd140..27d45ed 100644 (file)
@@ -99,12 +99,10 @@ extern cm_localMountPoint_t* cm_localMountPoints;   // array of fake mountpoints
 extern int cm_fakeDirSize;                             // size (in bytes) of fake root.afs directory
 
 extern int cm_fakeDirCallback;                         // state of the fake root.afs directory. indicates
-                                                                                                       // if it needs to be refreshed
+                                                        // if it needs to be refreshed
 
 extern int cm_fakeGettingCallback;                     // 1 if currently updating the fake root.afs directory,
-                                                                                                       // 0 otherwise
-
-extern int cm_fakeDirVersion;                          // the version number of the root.afs directory. used 
+                                                       // 0 otherwise
 #endif /* AFS_FREELANCE_CLIENT */
 
 extern int cm_dnsEnabled;
index a05cb9e..76d4bda 100644 (file)
@@ -62,9 +62,6 @@ char cm_mountRoot[1024];
 DWORD cm_mountRootLen;
 int cm_logChunkSize;
 int cm_chunkSize;
-#ifdef AFS_FREELANCE_CLIENT
-char *cm_FakeRootDir;
-#endif /* freelance */
 
 int smb_UseV3 = 1;
 
index e52ebd4..486b6bc 100644 (file)
@@ -19,7 +19,8 @@
 extern void afsi_log(char *pattern, ...);
 
 int cm_noLocalMountPoints;
-int cm_fakeDirSize;
+char * cm_FakeRootDir = NULL;
+int cm_fakeDirSize = 0;
 int cm_fakeDirCallback=0;
 int cm_fakeGettingCallback=0;
 cm_localMountPoint_t* cm_localMountPoints;
@@ -217,8 +218,12 @@ void cm_InitFakeRootDir() {
     }
 
     dirSize = (curPage+1) *  CM_DIR_PAGESIZE;
-    cm_FakeRootDir = malloc(dirSize);
-    cm_fakeDirSize = dirSize;
+    if (cm_fakeDirSize != dirSize) {
+        if (cm_FakeRootDir)
+            free(cm_FakeRootDir);
+        cm_FakeRootDir = malloc(dirSize);
+        cm_fakeDirSize = dirSize;
+    }
 
     // yj: when we get here, we've figured out how much memory we need and 
     // allocated the appropriate space for it. we now prceed to fill
@@ -433,11 +438,6 @@ int cm_reInitLocalMountPoints() {
     cm_InitLocalMountPoints();
     osi_Log0(afsd_logp,"\tcreated new set of localmountpoints!");
 
-    // now we have to free the memory allocated in cm_initfakerootdir
-    osi_Log0(afsd_logp,"Removing old fakedir...  ");
-    free(cm_FakeRootDir);
-    osi_Log0(afsd_logp,"\t\told fakedir removed!");
-
     // then we re-create that dir
     osi_Log0(afsd_logp,"Creating new fakedir...  ");
     cm_InitFakeRootDir();
index 8f158ce..43a4401 100644 (file)
@@ -1521,8 +1521,6 @@ void cm_MergeStatus(cm_scache_t *dscp,
         statusp->SyncCounter = 0;
         statusp->dataVersionHigh = (afs_uint32)(cm_data.fakeDirVersion >> 32);
         statusp->errorCode = 0;
-
-        buf_ForceDataVersion(scp, scp->dataVersion, cm_data.fakeDirVersion);
     }
 #endif /* AFS_FREELANCE_CLIENT */