aboutsummaryrefslogtreecommitdiffstats
path: root/net/ceph/osd_client.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ceph/osd_client.c')
-rw-r--r--net/ceph/osd_client.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
index 939be67199ca..0c5bf2fb5075 100644
--- a/net/ceph/osd_client.c
+++ b/net/ceph/osd_client.c
@@ -1314,8 +1314,14 @@ static void __send_request(struct ceph_osd_client *osdc,
1314 list_move_tail(&req->r_req_lru_item, &osdc->req_lru); 1314 list_move_tail(&req->r_req_lru_item, &osdc->req_lru);
1315 1315
1316 ceph_msg_get(req->r_request); /* send consumes a ref */ 1316 ceph_msg_get(req->r_request); /* send consumes a ref */
1317 ceph_con_send(&req->r_osd->o_con, req->r_request); 1317
1318 /* Mark the request unsafe if this is the first timet's being sent. */
1319
1320 if (!req->r_sent && req->r_unsafe_callback)
1321 req->r_unsafe_callback(req, true);
1318 req->r_sent = req->r_osd->o_incarnation; 1322 req->r_sent = req->r_osd->o_incarnation;
1323
1324 ceph_con_send(&req->r_osd->o_con, req->r_request);
1319} 1325}
1320 1326
1321/* 1327/*
@@ -1403,8 +1409,8 @@ static void handle_osds_timeout(struct work_struct *work)
1403 1409
1404static void complete_request(struct ceph_osd_request *req) 1410static void complete_request(struct ceph_osd_request *req)
1405{ 1411{
1406 if (req->r_safe_callback) 1412 if (req->r_unsafe_callback)
1407 req->r_safe_callback(req, NULL); 1413 req->r_unsafe_callback(req, false);
1408 complete_all(&req->r_safe_completion); /* fsync waiter */ 1414 complete_all(&req->r_safe_completion); /* fsync waiter */
1409} 1415}
1410 1416