diff --git a/source/dnode/vnode/src/tsdb/tsdbFS2.c b/source/dnode/vnode/src/tsdb/tsdbFS2.c index bb57c05e77..6b41b51d3b 100644 --- a/source/dnode/vnode/src/tsdb/tsdbFS2.c +++ b/source/dnode/vnode/src/tsdb/tsdbFS2.c @@ -793,7 +793,12 @@ int32_t tsdbCloseFS(STFileSystem **fs) { return 0; } -int64_t tsdbFSAllocEid(STFileSystem *fs) { return atomic_add_fetch_64(&fs->neid, 1); } +int64_t tsdbFSAllocEid(STFileSystem *fs) { + taosThreadRwlockWrlock(&fs->tsdb->rwLock); + int64_t cid = ++fs->neid; + taosThreadRwlockUnlock(&fs->tsdb->rwLock); + return cid; +} int32_t tsdbFSEditBegin(STFileSystem *fs, const TFileOpArray *opArray, EFEditT etype) { int32_t code = 0; diff --git a/source/dnode/vnode/src/tsdb/tsdbFS2.h b/source/dnode/vnode/src/tsdb/tsdbFS2.h index 30dde7be31..b0f42a0c48 100644 --- a/source/dnode/vnode/src/tsdb/tsdbFS2.h +++ b/source/dnode/vnode/src/tsdb/tsdbFS2.h @@ -89,13 +89,13 @@ struct STFSBgTask { /* Exposed Structs */ struct STFileSystem { - STsdb *tsdb; - tsem_t canEdit; - int32_t state; - volatile int64_t neid; - EFEditT etype; - TFileSetArray fSetArr[1]; - TFileSetArray fSetArrTmp[1]; + STsdb *tsdb; + tsem_t canEdit; + int32_t state; + int64_t neid; + EFEditT etype; + TFileSetArray fSetArr[1]; + TFileSetArray fSetArrTmp[1]; // background task queue TdThreadMutex mutex[1];