Loading include/linux/ceph/osd_client.h +2 −2 Original line number Diff line number Diff line Loading @@ -148,6 +148,8 @@ struct ceph_osd_request_target { unsigned int flags; /* CEPH_OSD_FLAG_* */ bool paused; u32 last_force_resend; int osd; }; Loading Loading @@ -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[]; Loading Loading @@ -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; Loading net/ceph/osd_client.c +10 −11 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -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; Loading @@ -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; } } Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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; Loading Loading @@ -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 || Loading Loading @@ -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) { Loading Loading
include/linux/ceph/osd_client.h +2 −2 Original line number Diff line number Diff line Loading @@ -148,6 +148,8 @@ struct ceph_osd_request_target { unsigned int flags; /* CEPH_OSD_FLAG_* */ bool paused; u32 last_force_resend; int osd; }; Loading Loading @@ -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[]; Loading Loading @@ -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; Loading
net/ceph/osd_client.c +10 −11 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -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; Loading @@ -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; } } Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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; Loading Loading @@ -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 || Loading Loading @@ -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) { Loading