未验证 提交 7a4dc16f 编写于 作者: S Shengliang Guan 提交者: GitHub

Merge pull request #3209 from taosdata/master

Master
...@@ -23,7 +23,7 @@ extern "C" { ...@@ -23,7 +23,7 @@ extern "C" {
// TAOS_OS_FUNC_DIR // TAOS_OS_FUNC_DIR
void taosRemoveDir(char *rootDir); void taosRemoveDir(char *rootDir);
int taosMkDir(const char *pathname, mode_t mode); int taosMkDir(const char *pathname, mode_t mode);
void taosMvDir(char* destDir, char *srcDir); void taosRename(char* oldName, char *newName);
#ifdef __cplusplus #ifdef __cplusplus
} }
......
...@@ -50,18 +50,19 @@ int taosMkDir(const char *path, mode_t mode) { ...@@ -50,18 +50,19 @@ int taosMkDir(const char *path, mode_t mode) {
return code; return code;
} }
void taosMvDir(char* destDir, char *srcDir) { void taosRename(char* oldName, char *newName) {
if (0 == tsEnableVnodeBak) { if (0 == tsEnableVnodeBak) {
uInfo("vnode backup not enabled"); uInfo("vnode backup not enabled");
return; return;
} }
char shellCmd[1024+1] = {0}; // if newName in not empty, rename return fail.
// the newName must be empty or does not exist
//(void)snprintf(shellCmd, 1024, "cp -rf %s %s", srcDir, destDir); if (rename(oldName, newName)) {
(void)snprintf(shellCmd, 1024, "mv %s %s", srcDir, destDir); uError("%s is modify to %s fail, reason:%s", oldName, newName, strerror(errno));
taosSystem(shellCmd); } else {
uInfo("shell cmd:%s is executed", shellCmd); uInfo("%s is modify to %s success!", oldName, newName);
}
} }
#endif #endif
\ No newline at end of file
...@@ -358,9 +358,11 @@ void vnodeRelease(void *pVnodeRaw) { ...@@ -358,9 +358,11 @@ void vnodeRelease(void *pVnodeRaw) {
taosTFree(pVnode->rootDir); taosTFree(pVnode->rootDir);
if (pVnode->dropped) { if (pVnode->dropped) {
char rootDir[TSDB_FILENAME_LEN] = {0}; char rootDir[TSDB_FILENAME_LEN] = {0};
char newDir[TSDB_FILENAME_LEN] = {0};
sprintf(rootDir, "%s/vnode%d", tsVnodeDir, vgId); sprintf(rootDir, "%s/vnode%d", tsVnodeDir, vgId);
taosMvDir(tsVnodeBakDir, rootDir); sprintf(newDir, "%s/vnode%d", tsVnodeBakDir, vgId);
taosRename(rootDir, newDir);
taosRemoveDir(rootDir); taosRemoveDir(rootDir);
dnodeSendStatusMsgToMnode(); dnodeSendStatusMsgToMnode();
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册