Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
dc93e0e2
Commit
dc93e0e2
authored
Jun 05, 2017
by
Ilya Dryomov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
libceph: fold [l]req->last_force_resend into ceph_osd_request_target
Signed-off-by:
Ilya Dryomov
<
idryomov@gmail.com
>
parent
220abf5a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
12 additions
and
13 deletions
+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
No files found.
include/linux/ceph/osd_client.h
View file @
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
View file @
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
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment