Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
159f691f
L
libvirt
项目概览
openeuler
/
libvirt
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
libvirt
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
159f691f
编写于
7月 26, 2017
作者:
J
John Ferlan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
storage: Use virStoragePoolObjGetDef accessor for VSTORAGE backend
In preparation for privatizing the object, use the accessor.
上级
d823466b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
17 addition
and
14 deletion
+17
-14
src/storage/storage_backend_vstorage.c
src/storage/storage_backend_vstorage.c
+17
-14
未找到文件。
src/storage/storage_backend_vstorage.c
浏览文件 @
159f691f
...
@@ -41,33 +41,34 @@ virStorageBackendVzPoolStart(virConnectPtr conn ATTRIBUTE_UNUSED,
...
@@ -41,33 +41,34 @@ virStorageBackendVzPoolStart(virConnectPtr conn ATTRIBUTE_UNUSED,
virStoragePoolObjPtr
pool
)
virStoragePoolObjPtr
pool
)
{
{
int
ret
=
-
1
;
int
ret
=
-
1
;
virStoragePoolDefPtr
def
=
virStoragePoolObjGetDef
(
pool
);
virCommandPtr
cmd
=
NULL
;
virCommandPtr
cmd
=
NULL
;
char
*
grp_name
=
NULL
;
char
*
grp_name
=
NULL
;
char
*
usr_name
=
NULL
;
char
*
usr_name
=
NULL
;
char
*
mode
=
NULL
;
char
*
mode
=
NULL
;
/* Check the permissions */
/* Check the permissions */
if
(
pool
->
def
->
target
.
perms
.
mode
==
(
mode_t
)
-
1
)
if
(
def
->
target
.
perms
.
mode
==
(
mode_t
)
-
1
)
pool
->
def
->
target
.
perms
.
mode
=
VIR_STORAGE_DEFAULT_POOL_PERM_MODE
;
def
->
target
.
perms
.
mode
=
VIR_STORAGE_DEFAULT_POOL_PERM_MODE
;
if
(
pool
->
def
->
target
.
perms
.
uid
==
(
uid_t
)
-
1
)
if
(
def
->
target
.
perms
.
uid
==
(
uid_t
)
-
1
)
pool
->
def
->
target
.
perms
.
uid
=
geteuid
();
def
->
target
.
perms
.
uid
=
geteuid
();
if
(
pool
->
def
->
target
.
perms
.
gid
==
(
gid_t
)
-
1
)
if
(
def
->
target
.
perms
.
gid
==
(
gid_t
)
-
1
)
pool
->
def
->
target
.
perms
.
gid
=
getegid
();
def
->
target
.
perms
.
gid
=
getegid
();
/* Convert ids to names because vstorage uses names */
/* Convert ids to names because vstorage uses names */
if
(
!
(
grp_name
=
virGetGroupName
(
pool
->
def
->
target
.
perms
.
gid
)))
if
(
!
(
grp_name
=
virGetGroupName
(
def
->
target
.
perms
.
gid
)))
goto
cleanup
;
goto
cleanup
;
if
(
!
(
usr_name
=
virGetUserName
(
pool
->
def
->
target
.
perms
.
uid
)))
if
(
!
(
usr_name
=
virGetUserName
(
def
->
target
.
perms
.
uid
)))
goto
cleanup
;
goto
cleanup
;
if
(
virAsprintf
(
&
mode
,
"%o"
,
pool
->
def
->
target
.
perms
.
mode
)
<
0
)
if
(
virAsprintf
(
&
mode
,
"%o"
,
def
->
target
.
perms
.
mode
)
<
0
)
goto
cleanup
;
goto
cleanup
;
cmd
=
virCommandNewArgList
(
VSTORAGE_MOUNT
,
cmd
=
virCommandNewArgList
(
VSTORAGE_MOUNT
,
"-c"
,
pool
->
def
->
source
.
name
,
"-c"
,
def
->
source
.
name
,
pool
->
def
->
target
.
path
,
def
->
target
.
path
,
"-m"
,
mode
,
"-m"
,
mode
,
"-g"
,
grp_name
,
"-u"
,
usr_name
,
"-g"
,
grp_name
,
"-u"
,
usr_name
,
NULL
);
NULL
);
...
@@ -89,12 +90,13 @@ static int
...
@@ -89,12 +90,13 @@ static int
virStorageBackendVzIsMounted
(
virStoragePoolObjPtr
pool
)
virStorageBackendVzIsMounted
(
virStoragePoolObjPtr
pool
)
{
{
int
ret
=
-
1
;
int
ret
=
-
1
;
virStoragePoolDefPtr
def
=
virStoragePoolObjGetDef
(
pool
);
FILE
*
mtab
;
FILE
*
mtab
;
struct
mntent
ent
;
struct
mntent
ent
;
char
buf
[
1024
];
char
buf
[
1024
];
char
*
cluster
=
NULL
;
char
*
cluster
=
NULL
;
if
(
virAsprintf
(
&
cluster
,
"vstorage://%s"
,
pool
->
def
->
source
.
name
)
<
0
)
if
(
virAsprintf
(
&
cluster
,
"vstorage://%s"
,
def
->
source
.
name
)
<
0
)
return
-
1
;
return
-
1
;
if
((
mtab
=
fopen
(
_PATH_MOUNTED
,
"r"
))
==
NULL
)
{
if
((
mtab
=
fopen
(
_PATH_MOUNTED
,
"r"
))
==
NULL
)
{
...
@@ -106,7 +108,7 @@ virStorageBackendVzIsMounted(virStoragePoolObjPtr pool)
...
@@ -106,7 +108,7 @@ virStorageBackendVzIsMounted(virStoragePoolObjPtr pool)
while
((
getmntent_r
(
mtab
,
&
ent
,
buf
,
sizeof
(
buf
)))
!=
NULL
)
{
while
((
getmntent_r
(
mtab
,
&
ent
,
buf
,
sizeof
(
buf
)))
!=
NULL
)
{
if
(
STREQ
(
ent
.
mnt_dir
,
pool
->
def
->
target
.
path
)
&&
if
(
STREQ
(
ent
.
mnt_dir
,
def
->
target
.
path
)
&&
STREQ
(
ent
.
mnt_fsname
,
cluster
))
{
STREQ
(
ent
.
mnt_fsname
,
cluster
))
{
ret
=
1
;
ret
=
1
;
goto
cleanup
;
goto
cleanup
;
...
@@ -126,6 +128,7 @@ static int
...
@@ -126,6 +128,7 @@ static int
virStorageBackendVzPoolStop
(
virConnectPtr
conn
ATTRIBUTE_UNUSED
,
virStorageBackendVzPoolStop
(
virConnectPtr
conn
ATTRIBUTE_UNUSED
,
virStoragePoolObjPtr
pool
)
virStoragePoolObjPtr
pool
)
{
{
virStoragePoolDefPtr
def
=
virStoragePoolObjGetDef
(
pool
);
virCommandPtr
cmd
=
NULL
;
virCommandPtr
cmd
=
NULL
;
int
ret
=
-
1
;
int
ret
=
-
1
;
int
rc
;
int
rc
;
...
@@ -134,7 +137,7 @@ virStorageBackendVzPoolStop(virConnectPtr conn ATTRIBUTE_UNUSED,
...
@@ -134,7 +137,7 @@ virStorageBackendVzPoolStop(virConnectPtr conn ATTRIBUTE_UNUSED,
if
((
rc
=
virStorageBackendVzIsMounted
(
pool
))
!=
1
)
if
((
rc
=
virStorageBackendVzIsMounted
(
pool
))
!=
1
)
return
rc
;
return
rc
;
cmd
=
virCommandNewArgList
(
UMOUNT
,
pool
->
def
->
target
.
path
,
NULL
);
cmd
=
virCommandNewArgList
(
UMOUNT
,
def
->
target
.
path
,
NULL
);
if
(
virCommandRun
(
cmd
,
NULL
)
<
0
)
if
(
virCommandRun
(
cmd
,
NULL
)
<
0
)
goto
cleanup
;
goto
cleanup
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录