Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
iSulad
提交
d8ad7756
I
iSulad
项目概览
openeuler
/
iSulad
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
iSulad
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d8ad7756
编写于
6月 13, 2020
作者:
L
lifeng68
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dev_mapper: fix device mapper metadata path
Signed-off-by:
N
lifeng68
<
lifeng68@huawei.com
>
上级
bcd9a8ba
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
20 addition
and
12 deletion
+20
-12
src/image/oci/storage/layer_store/graphdriver/devmapper/devices_constants.h
...age/layer_store/graphdriver/devmapper/devices_constants.h
+0
-1
src/image/oci/storage/layer_store/graphdriver/devmapper/deviceset.c
...oci/storage/layer_store/graphdriver/devmapper/deviceset.c
+20
-11
未找到文件。
src/image/oci/storage/layer_store/graphdriver/devmapper/devices_constants.h
浏览文件 @
d8ad7756
...
...
@@ -21,7 +21,6 @@
#include "isula_libutils/image_devmapper_deviceset_metadata.h"
#include "isula_libutils/image_devmapper_direct_lvm_config.h"
#define DEVICE_FILE_DIR "/var/lib/isulad/storage/devicemapper/metadata"
#define DEVICE_SET_METAFILE "deviceset-metadata"
#define TRANSACTION_METADATA "transaction-metadata"
#define DEVICE_DIRECTORY "/dev"
...
...
src/image/oci/storage/layer_store/graphdriver/devmapper/deviceset.c
浏览文件 @
d8ad7756
...
...
@@ -562,18 +562,26 @@ static uint64_t get_base_device_size(struct device_set *devset)
static
int
device_file_walk
(
struct
device_set
*
devset
)
{
int
ret
=
0
;
DIR
*
dp
;
struct
dirent
*
entry
;
DIR
*
dp
=
NULL
;
struct
dirent
*
entry
=
NULL
;
struct
stat
st
;
image_devmapper_device_info
*
info
=
NULL
;
char
fname
[
PATH_MAX
]
=
{
0
};
char
*
metadir
=
NULL
;
dp
=
opendir
(
DEVICE_FILE_DIR
);
if
(
dp
==
NULL
)
{
ERROR
(
"
devmapper: open dir %s failed"
,
DEVICE_FILE_DIR
);
metadir
=
metadata_dir
(
devset
);
if
(
metadir
==
NULL
)
{
ERROR
(
"
Failed to get meta data directory"
);
return
-
1
;
}
dp
=
opendir
(
metadir
);
if
(
dp
==
NULL
)
{
ERROR
(
"devmapper: open dir %s failed"
,
metadir
);
ret
=
-
1
;
goto
out
;
}
// 路径权限导致stat为非regular文件,误判为dir,此处需优化
while
((
entry
=
readdir
(
dp
))
!=
NULL
)
{
int
pathname_len
;
...
...
@@ -583,7 +591,7 @@ static int device_file_walk(struct device_set *devset)
}
(
void
)
memset
(
fname
,
0
,
sizeof
(
fname
));
pathname_len
=
snprintf
(
fname
,
PATH_MAX
,
"%s/%s"
,
DEVICE_FILE_DIR
,
entry
->
d_name
);
pathname_len
=
snprintf
(
fname
,
PATH_MAX
,
"%s/%s"
,
metadir
,
entry
->
d_name
);
if
(
pathname_len
<
0
||
pathname_len
>=
PATH_MAX
)
{
ERROR
(
"Pathname too long"
);
continue
;
...
...
@@ -618,7 +626,10 @@ static int device_file_walk(struct device_set *devset)
}
out:
closedir
(
dp
);
if
(
dp
!=
NULL
)
{
closedir
(
dp
);
}
free
(
metadir
);
return
ret
;
}
...
...
@@ -2433,8 +2444,7 @@ static int devmapper_init_devset(const char *driver_home, const char **options,
goto
out
;
}
ret
=
devmapper_parse_options
(
devset
,
options
,
len
);
if
(
ret
!=
0
)
{
if
(
devmapper_parse_options
(
devset
,
options
,
len
)
!=
0
)
{
ERROR
(
"devmapper: parse options failed"
);
ret
=
-
1
;
goto
out
;
...
...
@@ -2453,8 +2463,7 @@ static int devmapper_init_devset(const char *driver_home, const char **options,
goto
out
;
}
ret
=
pthread_rwlock_init
(
&
devset
->
devmapper_driver_rwlock
,
NULL
);
if
(
ret
!=
0
)
{
if
(
pthread_rwlock_init
(
&
devset
->
devmapper_driver_rwlock
,
NULL
)
!=
0
)
{
ERROR
(
"Failed to init devmapper conf rwlock"
);
ret
=
-
1
;
goto
out
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录