Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
dc93e0e2
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
dc93e0e2
编写于
6月 05, 2017
作者:
I
Ilya Dryomov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
libceph: fold [l]req->last_force_resend into ceph_osd_request_target
Signed-off-by:
N
Ilya Dryomov
<
idryomov@gmail.com
>
上级
220abf5a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
12 addition
and
13 deletion
+12
-13
include/linux/ceph/osd_client.h
include/linux/ceph/osd_client.h
+2
-2
net/ceph/osd_client.c
net/ceph/osd_client.c
+10
-11
未找到文件。
include/linux/ceph/osd_client.h
浏览文件 @
dc93e0e2
...
...
@@ -148,6 +148,8 @@ struct ceph_osd_request_target {
unsigned
int
flags
;
/* CEPH_OSD_FLAG_* */
bool
paused
;
u32
last_force_resend
;
int
osd
;
};
...
...
@@ -193,7 +195,6 @@ struct ceph_osd_request {
unsigned
long
r_stamp
;
/* jiffies, send or check time */
unsigned
long
r_start_stamp
;
/* jiffies */
int
r_attempts
;
u32
r_last_force_resend
;
u32
r_map_dne_bound
;
struct
ceph_osd_req_op
r_ops
[];
...
...
@@ -221,7 +222,6 @@ struct ceph_osd_linger_request {
struct
list_head
pending_lworks
;
struct
ceph_osd_request_target
t
;
u32
last_force_resend
;
u32
map_dne_bound
;
struct
timespec
mtime
;
...
...
net/ceph/osd_client.c
浏览文件 @
dc93e0e2
...
...
@@ -384,6 +384,8 @@ static void target_copy(struct ceph_osd_request_target *dest,
dest
->
flags
=
src
->
flags
;
dest
->
paused
=
src
->
paused
;
dest
->
last_force_resend
=
src
->
last_force_resend
;
dest
->
osd
=
src
->
osd
;
}
...
...
@@ -1311,7 +1313,6 @@ enum calc_target_result {
static
enum
calc_target_result
calc_target
(
struct
ceph_osd_client
*
osdc
,
struct
ceph_osd_request_target
*
t
,
u32
*
last_force_resend
,
bool
any_change
)
{
struct
ceph_pg_pool_info
*
pi
;
...
...
@@ -1332,11 +1333,10 @@ static enum calc_target_result calc_target(struct ceph_osd_client *osdc,
}
if
(
osdc
->
osdmap
->
epoch
==
pi
->
last_force_request_resend
)
{
if
(
last_force_resend
&&
*
last_force_resend
<
pi
->
last_force_request_resend
)
{
*
last_force_resend
=
pi
->
last_force_request_resend
;
if
(
t
->
last_force_resend
<
pi
->
last_force_request_resend
)
{
t
->
last_force_resend
=
pi
->
last_force_request_resend
;
force_resend
=
true
;
}
else
if
(
!
last_force_resend
)
{
}
else
if
(
t
->
last_force_resend
==
0
)
{
force_resend
=
true
;
}
}
...
...
@@ -1645,7 +1645,7 @@ static void __submit_request(struct ceph_osd_request *req, bool wrlocked)
dout
(
"%s req %p wrlocked %d
\n
"
,
__func__
,
req
,
wrlocked
);
again:
ct_res
=
calc_target
(
osdc
,
&
req
->
r_t
,
&
req
->
r_last_force_resend
,
false
);
ct_res
=
calc_target
(
osdc
,
&
req
->
r_t
,
false
);
if
(
ct_res
==
CALC_TARGET_POOL_DNE
&&
!
wrlocked
)
goto
promote
;
...
...
@@ -2441,7 +2441,7 @@ static void linger_submit(struct ceph_osd_linger_request *lreq)
struct
ceph_osd_client
*
osdc
=
lreq
->
osdc
;
struct
ceph_osd
*
osd
;
calc_target
(
osdc
,
&
lreq
->
t
,
&
lreq
->
last_force_resend
,
false
);
calc_target
(
osdc
,
&
lreq
->
t
,
false
);
osd
=
lookup_create_osd
(
osdc
,
lreq
->
t
.
osd
,
true
);
link_linger
(
osd
,
lreq
);
...
...
@@ -3059,7 +3059,7 @@ recalc_linger_target(struct ceph_osd_linger_request *lreq)
struct
ceph_osd_client
*
osdc
=
lreq
->
osdc
;
enum
calc_target_result
ct_res
;
ct_res
=
calc_target
(
osdc
,
&
lreq
->
t
,
&
lreq
->
last_force_resend
,
true
);
ct_res
=
calc_target
(
osdc
,
&
lreq
->
t
,
true
);
if
(
ct_res
==
CALC_TARGET_NEED_RESEND
)
{
struct
ceph_osd
*
osd
;
...
...
@@ -3130,8 +3130,7 @@ static void scan_requests(struct ceph_osd *osd,
n
=
rb_next
(
n
);
/* unlink_request(), check_pool_dne() */
dout
(
"%s req %p tid %llu
\n
"
,
__func__
,
req
,
req
->
r_tid
);
ct_res
=
calc_target
(
osdc
,
&
req
->
r_t
,
&
req
->
r_last_force_resend
,
false
);
ct_res
=
calc_target
(
osdc
,
&
req
->
r_t
,
false
);
switch
(
ct_res
)
{
case
CALC_TARGET_NO_ACTION
:
force_resend_writes
=
cleared_full
||
...
...
@@ -3240,7 +3239,7 @@ static void kick_requests(struct ceph_osd_client *osdc,
erase_request
(
need_resend
,
req
);
/* before link_request() */
WARN_ON
(
req
->
r_osd
);
calc_target
(
osdc
,
&
req
->
r_t
,
NULL
,
false
);
calc_target
(
osdc
,
&
req
->
r_t
,
false
);
osd
=
lookup_create_osd
(
osdc
,
req
->
r_t
.
osd
,
true
);
link_request
(
osd
,
req
);
if
(
!
req
->
r_linger
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录