Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gsplhtlxg
clone-Linux
提交
0deb01c9
C
clone-Linux
项目概览
gsplhtlxg
/
clone-Linux
通知
2
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
clone-Linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0deb01c9
编写于
6月 17, 2010
作者:
S
Sage Weil
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ceph: track laggy state of mds from mdsmap
Signed-off-by:
N
Sage Weil
<
sage@newdream.net
>
上级
cd84db6e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
16 addition
and
2 deletion
+16
-2
fs/ceph/mds_client.c
fs/ceph/mds_client.c
+3
-1
fs/ceph/mdsmap.c
fs/ceph/mdsmap.c
+5
-1
fs/ceph/mdsmap.h
fs/ceph/mdsmap.h
+8
-0
未找到文件。
fs/ceph/mds_client.c
浏览文件 @
0deb01c9
...
...
@@ -2377,9 +2377,11 @@ static void check_new_map(struct ceph_mds_client *mdsc,
oldstate
=
ceph_mdsmap_get_state
(
oldmap
,
i
);
newstate
=
ceph_mdsmap_get_state
(
newmap
,
i
);
dout
(
"check_new_map mds%d state %s
->
%s (session %s)
\n
"
,
dout
(
"check_new_map mds%d state %s
%s -> %s
%s (session %s)
\n
"
,
i
,
ceph_mds_state_name
(
oldstate
),
ceph_mdsmap_is_laggy
(
oldmap
,
i
)
?
" (laggy)"
:
""
,
ceph_mds_state_name
(
newstate
),
ceph_mdsmap_is_laggy
(
newmap
,
i
)
?
" (laggy)"
:
""
,
session_state_name
(
s
->
s_state
));
if
(
memcmp
(
ceph_mdsmap_get_addr
(
oldmap
,
i
),
...
...
fs/ceph/mdsmap.c
浏览文件 @
0deb01c9
...
...
@@ -85,6 +85,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
struct
ceph_entity_addr
addr
;
u32
num_export_targets
;
void
*
pexport_targets
=
NULL
;
struct
ceph_timespec
laggy_since
;
ceph_decode_need
(
p
,
end
,
sizeof
(
u64
)
*
2
+
1
+
sizeof
(
u32
),
bad
);
global_id
=
ceph_decode_64
(
p
);
...
...
@@ -103,7 +104,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
state_seq
=
ceph_decode_64
(
p
);
ceph_decode_copy
(
p
,
&
addr
,
sizeof
(
addr
));
ceph_decode_addr
(
&
addr
);
*
p
+=
sizeof
(
struct
ceph_timespec
);
ceph_decode_copy
(
p
,
&
laggy_since
,
sizeof
(
laggy_since
)
);
*
p
+=
sizeof
(
u32
);
ceph_decode_32_safe
(
p
,
end
,
namelen
,
bad
);
*
p
+=
namelen
;
...
...
@@ -122,6 +123,9 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
m
->
m_info
[
mds
].
global_id
=
global_id
;
m
->
m_info
[
mds
].
state
=
state
;
m
->
m_info
[
mds
].
addr
=
addr
;
m
->
m_info
[
mds
].
laggy
=
(
laggy_since
.
tv_sec
!=
0
||
laggy_since
.
tv_nsec
!=
0
);
m
->
m_info
[
mds
].
num_export_targets
=
num_export_targets
;
if
(
num_export_targets
)
{
m
->
m_info
[
mds
].
export_targets
=
...
...
fs/ceph/mdsmap.h
浏览文件 @
0deb01c9
...
...
@@ -13,6 +13,7 @@ struct ceph_mds_info {
struct
ceph_entity_addr
addr
;
s32
state
;
int
num_export_targets
;
bool
laggy
;
u32
*
export_targets
;
};
...
...
@@ -47,6 +48,13 @@ static inline int ceph_mdsmap_get_state(struct ceph_mdsmap *m, int w)
return
m
->
m_info
[
w
].
state
;
}
static
inline
bool
ceph_mdsmap_is_laggy
(
struct
ceph_mdsmap
*
m
,
int
w
)
{
if
(
w
>=
0
&&
w
<
m
->
m_max_mds
)
return
m
->
m_info
[
w
].
laggy
;
return
false
;
}
extern
int
ceph_mdsmap_get_random_mds
(
struct
ceph_mdsmap
*
m
);
extern
struct
ceph_mdsmap
*
ceph_mdsmap_decode
(
void
**
p
,
void
*
end
);
extern
void
ceph_mdsmap_destroy
(
struct
ceph_mdsmap
*
m
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录