Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
68d4a494
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
68d4a494
编写于
1月 25, 2021
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix data1.sim error
上级
ad67bdf1
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
60 addition
and
4 deletion
+60
-4
src/inc/tfs.h
src/inc/tfs.h
+1
-0
src/tfs/src/tfs.c
src/tfs/src/tfs.c
+23
-0
src/tsdb/src/tsdbFile.c
src/tsdb/src/tsdbFile.c
+36
-4
未找到文件。
src/inc/tfs.h
浏览文件 @
68d4a494
...
...
@@ -75,6 +75,7 @@ void tfsdirname(const TFILE *pf, char *dest);
// DIR APIs ====================================
int
tfsMkdirAt
(
const
char
*
rname
,
int
level
,
int
id
);
int
tfsMkdirRecurAt
(
const
char
*
rname
,
int
level
,
int
id
);
int
tfsMkdir
(
const
char
*
rname
);
int
tfsRmdir
(
const
char
*
rname
);
int
tfsRename
(
char
*
orname
,
char
*
nrname
);
...
...
src/tfs/src/tfs.c
浏览文件 @
68d4a494
...
...
@@ -250,6 +250,29 @@ int tfsMkdirAt(const char *rname, int level, int id) {
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
)
{
for
(
int
level
=
0
;
level
<
TFS_NLEVEL
();
level
++
)
{
STier
*
pTier
=
TFS_TIER_AT
(
level
);
...
...
src/tsdb/src/tsdbFile.c
浏览文件 @
68d4a494
...
...
@@ -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
);
if
(
pMFile
->
fd
<
0
)
{
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
return
-
1
;
if
(
errno
==
ENOENT
)
{
// 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
)
{
...
...
@@ -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
);
if
(
pDFile
->
fd
<
0
)
{
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
return
-
1
;
if
(
errno
==
ENOENT
)
{
// 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
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录