From 7083ceec5c21e500f23110152dcc994c7ccfab92 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Sat, 1 Mar 2008 17:43:16 +0000 Subject: [PATCH] windows-freelance-20080301 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 | 6 ++---- src/WINNT/afsd/afsd_init.c | 3 --- src/WINNT/afsd/cm_freelance.c | 16 ++++++++-------- src/WINNT/afsd/cm_scache.c | 2 -- 4 files changed, 10 insertions(+), 17 deletions(-) diff --git a/src/WINNT/afsd/afsd.h b/src/WINNT/afsd/afsd.h index 2fdd140e2..27d45edb0 100644 --- a/src/WINNT/afsd/afsd.h +++ b/src/WINNT/afsd/afsd.h @@ -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; diff --git a/src/WINNT/afsd/afsd_init.c b/src/WINNT/afsd/afsd_init.c index a05cb9e2c..76d4bda64 100644 --- a/src/WINNT/afsd/afsd_init.c +++ b/src/WINNT/afsd/afsd_init.c @@ -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; diff --git a/src/WINNT/afsd/cm_freelance.c b/src/WINNT/afsd/cm_freelance.c index e52ebd466..486b6bce8 100644 --- a/src/WINNT/afsd/cm_freelance.c +++ b/src/WINNT/afsd/cm_freelance.c @@ -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(); diff --git a/src/WINNT/afsd/cm_scache.c b/src/WINNT/afsd/cm_scache.c index 8f158cec5..43a4401fb 100644 --- a/src/WINNT/afsd/cm_scache.c +++ b/src/WINNT/afsd/cm_scache.c @@ -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 */ -- 2.39.5