fix data1.sim error
This commit is contained in:
parent
ad67bdf111
commit
68d4a494f0
|
@ -75,6 +75,7 @@ void tfsdirname(const TFILE *pf, char *dest);
|
||||||
|
|
||||||
// DIR APIs ====================================
|
// DIR APIs ====================================
|
||||||
int tfsMkdirAt(const char *rname, int level, int id);
|
int tfsMkdirAt(const char *rname, int level, int id);
|
||||||
|
int tfsMkdirRecurAt(const char *rname, int level, int id);
|
||||||
int tfsMkdir(const char *rname);
|
int tfsMkdir(const char *rname);
|
||||||
int tfsRmdir(const char *rname);
|
int tfsRmdir(const char *rname);
|
||||||
int tfsRename(char *orname, char *nrname);
|
int tfsRename(char *orname, char *nrname);
|
||||||
|
|
|
@ -250,6 +250,29 @@ int tfsMkdirAt(const char *rname, int level, int id) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int tfsMkdirRecurAt(const char *rname, int level, int id) {
|
||||||
|
if (tfsMkdirAt(rname, level, id) < 0) {
|
||||||
|
if (errno == ENOENT) {
|
||||||
|
// Try to create upper
|
||||||
|
char *s = strdup(rname);
|
||||||
|
|
||||||
|
if (tfsMkdirRecurAt(dirname(s), level, id) < 0) {
|
||||||
|
tfree(s);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
tfree(s);
|
||||||
|
|
||||||
|
if (tfsMkdirAt(rname, level, id) < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int tfsMkdir(const char *rname) {
|
int tfsMkdir(const char *rname) {
|
||||||
for (int level = 0; level < TFS_NLEVEL(); level++) {
|
for (int level = 0; level < TFS_NLEVEL(); level++) {
|
||||||
STier *pTier = TFS_TIER_AT(level);
|
STier *pTier = TFS_TIER_AT(level);
|
||||||
|
|
|
@ -110,8 +110,24 @@ int tsdbCreateMFile(SMFile *pMFile, bool updateHeader) {
|
||||||
|
|
||||||
pMFile->fd = open(TSDB_FILE_FULL_NAME(pMFile), O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0755);
|
pMFile->fd = open(TSDB_FILE_FULL_NAME(pMFile), O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0755);
|
||||||
if (pMFile->fd < 0) {
|
if (pMFile->fd < 0) {
|
||||||
terrno = TAOS_SYSTEM_ERROR(errno);
|
if (errno == ENOENT) {
|
||||||
return -1;
|
// Try to create directory recursively
|
||||||
|
char *s = strdup(TFILE_REL_NAME(&(pMFile->f)));
|
||||||
|
if (tfsMkdirRecurAt(dirname(s), TSDB_FILE_LEVEL(pMFile), TSDB_FILE_ID(pMFile)) < 0) {
|
||||||
|
tfree(s);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
tfree(s);
|
||||||
|
|
||||||
|
pMFile->fd = open(TSDB_FILE_FULL_NAME(pMFile), O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0755);
|
||||||
|
if (pMFile->fd < 0) {
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!updateHeader) {
|
if (!updateHeader) {
|
||||||
|
@ -323,8 +339,24 @@ int tsdbCreateDFile(SDFile *pDFile, bool updateHeader) {
|
||||||
|
|
||||||
pDFile->fd = open(TSDB_FILE_FULL_NAME(pDFile), O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0755);
|
pDFile->fd = open(TSDB_FILE_FULL_NAME(pDFile), O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0755);
|
||||||
if (pDFile->fd < 0) {
|
if (pDFile->fd < 0) {
|
||||||
terrno = TAOS_SYSTEM_ERROR(errno);
|
if (errno == ENOENT) {
|
||||||
return -1;
|
// Try to create directory recursively
|
||||||
|
char *s = strdup(TFILE_REL_NAME(&(pDFile->f)));
|
||||||
|
if (tfsMkdirRecurAt(dirname(s), TSDB_FILE_LEVEL(pDFile), TSDB_FILE_ID(pDFile)) < 0) {
|
||||||
|
tfree(s);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
tfree(s);
|
||||||
|
|
||||||
|
pDFile->fd = open(TSDB_FILE_FULL_NAME(pDFile), O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0755);
|
||||||
|
if (pDFile->fd < 0) {
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
terrno = TAOS_SYSTEM_ERROR(errno);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!updateHeader) {
|
if (!updateHeader) {
|
||||||
|
|
Loading…
Reference in New Issue