Lines Matching refs:osd_req
1356 static void rbd_osd_submit(struct ceph_osd_request *osd_req) in rbd_osd_submit() argument
1358 struct rbd_obj_request *obj_req = osd_req->r_priv; in rbd_osd_submit()
1361 __func__, osd_req, obj_req, obj_req->ex.oe_objno, in rbd_osd_submit()
1363 ceph_osdc_start_request(osd_req->r_osdc, osd_req, false); in rbd_osd_submit()
1430 static void rbd_osd_req_callback(struct ceph_osd_request *osd_req) in rbd_osd_req_callback() argument
1432 struct rbd_obj_request *obj_req = osd_req->r_priv; in rbd_osd_req_callback()
1435 dout("%s osd_req %p result %d for obj_req %p\n", __func__, osd_req, in rbd_osd_req_callback()
1436 osd_req->r_result, obj_req); in rbd_osd_req_callback()
1443 if (osd_req->r_result > 0 && rbd_img_is_write(obj_req->img_request)) in rbd_osd_req_callback()
1446 result = osd_req->r_result; in rbd_osd_req_callback()
1451 static void rbd_osd_format_read(struct ceph_osd_request *osd_req) in rbd_osd_format_read() argument
1453 struct rbd_obj_request *obj_request = osd_req->r_priv; in rbd_osd_format_read()
1457 osd_req->r_flags = CEPH_OSD_FLAG_READ | opt->read_from_replica; in rbd_osd_format_read()
1458 osd_req->r_snapid = obj_request->img_request->snap_id; in rbd_osd_format_read()
1461 static void rbd_osd_format_write(struct ceph_osd_request *osd_req) in rbd_osd_format_write() argument
1463 struct rbd_obj_request *obj_request = osd_req->r_priv; in rbd_osd_format_write()
1465 osd_req->r_flags = CEPH_OSD_FLAG_WRITE; in rbd_osd_format_write()
1466 ktime_get_real_ts64(&osd_req->r_mtime); in rbd_osd_format_write()
1467 osd_req->r_data_offset = obj_request->ex.oe_off; in rbd_osd_format_write()
1532 struct ceph_osd_request *osd_req; in rbd_obj_request_destroy() local
1540 osd_req = list_first_entry(&obj_request->osd_reqs, in rbd_obj_request_destroy()
1542 list_del_init(&osd_req->r_private_item); in rbd_obj_request_destroy()
1543 ceph_osdc_put_request(osd_req); in rbd_obj_request_destroy()
1991 struct ceph_osd_request *osd_req) in rbd_object_map_update_finish() argument
2000 if (osd_req->r_result) in rbd_object_map_update_finish()
2001 return osd_req->r_result; in rbd_object_map_update_finish()
2006 if (osd_req->r_num_ops == 1) in rbd_object_map_update_finish()
2012 rbd_assert(osd_req->r_num_ops == 2); in rbd_object_map_update_finish()
2013 osd_data = osd_req_op_data(osd_req, 1, cls, request_data); in rbd_object_map_update_finish()
2035 static void rbd_object_map_callback(struct ceph_osd_request *osd_req) in rbd_object_map_callback() argument
2037 struct rbd_obj_request *obj_req = osd_req->r_priv; in rbd_object_map_callback()
2040 dout("%s osd_req %p result %d for obj_req %p\n", __func__, osd_req, in rbd_object_map_callback()
2041 osd_req->r_result, obj_req); in rbd_object_map_callback()
2043 result = rbd_object_map_update_finish(obj_req, osd_req); in rbd_object_map_callback()
2198 static void rbd_osd_setup_data(struct ceph_osd_request *osd_req, int which) in rbd_osd_setup_data() argument
2200 struct rbd_obj_request *obj_req = osd_req->r_priv; in rbd_osd_setup_data()
2204 osd_req_op_extent_osd_data_bio(osd_req, which, in rbd_osd_setup_data()
2213 osd_req_op_extent_osd_data_bvec_pos(osd_req, which, in rbd_osd_setup_data()
2221 static int rbd_osd_setup_stat(struct ceph_osd_request *osd_req, int which) in rbd_osd_setup_stat() argument
2237 osd_req_op_init(osd_req, which, CEPH_OSD_OP_STAT, 0); in rbd_osd_setup_stat()
2238 osd_req_op_raw_data_in_pages(osd_req, which, pages, in rbd_osd_setup_stat()
2244 static int rbd_osd_setup_copyup(struct ceph_osd_request *osd_req, int which, in rbd_osd_setup_copyup() argument
2247 struct rbd_obj_request *obj_req = osd_req->r_priv; in rbd_osd_setup_copyup()
2250 ret = osd_req_op_cls_init(osd_req, which, "rbd", "copyup"); in rbd_osd_setup_copyup()
2254 osd_req_op_cls_request_data_bvecs(osd_req, which, obj_req->copyup_bvecs, in rbd_osd_setup_copyup()
2265 static void __rbd_osd_setup_write_ops(struct ceph_osd_request *osd_req, in __rbd_osd_setup_write_ops() argument
2268 struct rbd_obj_request *obj_req = osd_req->r_priv; in __rbd_osd_setup_write_ops()
2274 osd_req_op_alloc_hint_init(osd_req, which++, in __rbd_osd_setup_write_ops()
2285 osd_req_op_extent_init(osd_req, which, opcode, in __rbd_osd_setup_write_ops()
2287 rbd_osd_setup_data(osd_req, which); in __rbd_osd_setup_write_ops()
2312 static void __rbd_osd_setup_discard_ops(struct ceph_osd_request *osd_req, in __rbd_osd_setup_discard_ops() argument
2315 struct rbd_obj_request *obj_req = osd_req->r_priv; in __rbd_osd_setup_discard_ops()
2319 osd_req_op_init(osd_req, which, CEPH_OSD_OP_DELETE, 0); in __rbd_osd_setup_discard_ops()
2321 osd_req_op_extent_init(osd_req, which, in __rbd_osd_setup_discard_ops()
2370 static void __rbd_osd_setup_zeroout_ops(struct ceph_osd_request *osd_req, in __rbd_osd_setup_zeroout_ops() argument
2373 struct rbd_obj_request *obj_req = osd_req->r_priv; in __rbd_osd_setup_zeroout_ops()
2379 osd_req_op_init(osd_req, which++, in __rbd_osd_setup_zeroout_ops()
2384 osd_req_op_init(osd_req, which++, in __rbd_osd_setup_zeroout_ops()
2393 osd_req_op_extent_init(osd_req, which, opcode, in __rbd_osd_setup_zeroout_ops()
2443 static void rbd_osd_setup_write_ops(struct ceph_osd_request *osd_req, in rbd_osd_setup_write_ops() argument
2446 struct rbd_obj_request *obj_req = osd_req->r_priv; in rbd_osd_setup_write_ops()
2450 __rbd_osd_setup_write_ops(osd_req, which); in rbd_osd_setup_write_ops()
2453 __rbd_osd_setup_discard_ops(osd_req, which); in rbd_osd_setup_write_ops()
2456 __rbd_osd_setup_zeroout_ops(osd_req, which); in rbd_osd_setup_write_ops()
2818 struct ceph_osd_request *osd_req; in rbd_obj_read_object() local
2821 osd_req = __rbd_obj_add_osd_request(obj_req, NULL, 1); in rbd_obj_read_object()
2822 if (IS_ERR(osd_req)) in rbd_obj_read_object()
2823 return PTR_ERR(osd_req); in rbd_obj_read_object()
2825 osd_req_op_extent_init(osd_req, 0, CEPH_OSD_OP_READ, in rbd_obj_read_object()
2827 rbd_osd_setup_data(osd_req, 0); in rbd_obj_read_object()
2828 rbd_osd_format_read(osd_req); in rbd_obj_read_object()
2830 ret = ceph_osdc_alloc_messages(osd_req, GFP_NOIO); in rbd_obj_read_object()
2834 rbd_osd_submit(osd_req); in rbd_obj_read_object()
3011 struct ceph_osd_request *osd_req; in rbd_obj_write_object() local
3019 osd_req = rbd_obj_add_osd_request(obj_req, num_ops); in rbd_obj_write_object()
3020 if (IS_ERR(osd_req)) in rbd_obj_write_object()
3021 return PTR_ERR(osd_req); in rbd_obj_write_object()
3024 ret = rbd_osd_setup_stat(osd_req, which++); in rbd_obj_write_object()
3029 rbd_osd_setup_write_ops(osd_req, which); in rbd_obj_write_object()
3030 rbd_osd_format_write(osd_req); in rbd_obj_write_object()
3032 ret = ceph_osdc_alloc_messages(osd_req, GFP_NOIO); in rbd_obj_write_object()
3036 rbd_osd_submit(osd_req); in rbd_obj_write_object()
3063 struct ceph_osd_request *osd_req; in rbd_obj_copyup_empty_snapc() local
3069 osd_req = __rbd_obj_add_osd_request(obj_req, &rbd_empty_snapc, 1); in rbd_obj_copyup_empty_snapc()
3070 if (IS_ERR(osd_req)) in rbd_obj_copyup_empty_snapc()
3071 return PTR_ERR(osd_req); in rbd_obj_copyup_empty_snapc()
3073 ret = rbd_osd_setup_copyup(osd_req, 0, bytes); in rbd_obj_copyup_empty_snapc()
3077 rbd_osd_format_write(osd_req); in rbd_obj_copyup_empty_snapc()
3079 ret = ceph_osdc_alloc_messages(osd_req, GFP_NOIO); in rbd_obj_copyup_empty_snapc()
3083 rbd_osd_submit(osd_req); in rbd_obj_copyup_empty_snapc()
3090 struct ceph_osd_request *osd_req; in rbd_obj_copyup_current_snapc() local
3100 osd_req = rbd_obj_add_osd_request(obj_req, num_ops); in rbd_obj_copyup_current_snapc()
3101 if (IS_ERR(osd_req)) in rbd_obj_copyup_current_snapc()
3102 return PTR_ERR(osd_req); in rbd_obj_copyup_current_snapc()
3105 ret = rbd_osd_setup_copyup(osd_req, which++, bytes); in rbd_obj_copyup_current_snapc()
3110 rbd_osd_setup_write_ops(osd_req, which); in rbd_obj_copyup_current_snapc()
3111 rbd_osd_format_write(osd_req); in rbd_obj_copyup_current_snapc()
3113 ret = ceph_osdc_alloc_messages(osd_req, GFP_NOIO); in rbd_obj_copyup_current_snapc()
3117 rbd_osd_submit(osd_req); in rbd_obj_copyup_current_snapc()