osd_req 1444 drivers/block/rbd.c static void rbd_osd_submit(struct ceph_osd_request *osd_req) osd_req 1446 drivers/block/rbd.c struct rbd_obj_request *obj_req = osd_req->r_priv; osd_req 1449 drivers/block/rbd.c __func__, osd_req, obj_req, obj_req->ex.oe_objno, osd_req 1451 drivers/block/rbd.c ceph_osdc_start_request(osd_req->r_osdc, osd_req, false); osd_req 1526 drivers/block/rbd.c static void rbd_osd_req_callback(struct ceph_osd_request *osd_req) osd_req 1528 drivers/block/rbd.c struct rbd_obj_request *obj_req = osd_req->r_priv; osd_req 1531 drivers/block/rbd.c dout("%s osd_req %p result %d for obj_req %p\n", __func__, osd_req, osd_req 1532 drivers/block/rbd.c osd_req->r_result, obj_req); osd_req 1539 drivers/block/rbd.c if (osd_req->r_result > 0 && rbd_img_is_write(obj_req->img_request)) osd_req 1542 drivers/block/rbd.c result = osd_req->r_result; osd_req 1547 drivers/block/rbd.c static void rbd_osd_format_read(struct ceph_osd_request *osd_req) osd_req 1549 drivers/block/rbd.c struct rbd_obj_request *obj_request = osd_req->r_priv; osd_req 1551 drivers/block/rbd.c osd_req->r_flags = CEPH_OSD_FLAG_READ; osd_req 1552 drivers/block/rbd.c osd_req->r_snapid = obj_request->img_request->snap_id; osd_req 1555 drivers/block/rbd.c static void rbd_osd_format_write(struct ceph_osd_request *osd_req) osd_req 1557 drivers/block/rbd.c struct rbd_obj_request *obj_request = osd_req->r_priv; osd_req 1559 drivers/block/rbd.c osd_req->r_flags = CEPH_OSD_FLAG_WRITE; osd_req 1560 drivers/block/rbd.c ktime_get_real_ts64(&osd_req->r_mtime); osd_req 1561 drivers/block/rbd.c osd_req->r_data_offset = obj_request->ex.oe_off; osd_req 1626 drivers/block/rbd.c struct ceph_osd_request *osd_req; osd_req 1634 drivers/block/rbd.c osd_req = list_first_entry(&obj_request->osd_reqs, osd_req 1636 drivers/block/rbd.c list_del_init(&osd_req->r_private_item); osd_req 1637 drivers/block/rbd.c ceph_osdc_put_request(osd_req); osd_req 2085 drivers/block/rbd.c struct ceph_osd_request *osd_req) osd_req 2094 drivers/block/rbd.c if (osd_req->r_result) osd_req 2095 drivers/block/rbd.c return osd_req->r_result; osd_req 2100 drivers/block/rbd.c if (osd_req->r_num_ops == 1) osd_req 2106 drivers/block/rbd.c rbd_assert(osd_req->r_num_ops == 2); osd_req 2107 drivers/block/rbd.c osd_data = osd_req_op_data(osd_req, 1, cls, request_data); osd_req 2129 drivers/block/rbd.c static void rbd_object_map_callback(struct ceph_osd_request *osd_req) osd_req 2131 drivers/block/rbd.c struct rbd_obj_request *obj_req = osd_req->r_priv; osd_req 2134 drivers/block/rbd.c dout("%s osd_req %p result %d for obj_req %p\n", __func__, osd_req, osd_req 2135 drivers/block/rbd.c osd_req->r_result, obj_req); osd_req 2137 drivers/block/rbd.c result = rbd_object_map_update_finish(obj_req, osd_req); osd_req 2292 drivers/block/rbd.c static void rbd_osd_setup_data(struct ceph_osd_request *osd_req, int which) osd_req 2294 drivers/block/rbd.c struct rbd_obj_request *obj_req = osd_req->r_priv; osd_req 2298 drivers/block/rbd.c osd_req_op_extent_osd_data_bio(osd_req, which, osd_req 2307 drivers/block/rbd.c osd_req_op_extent_osd_data_bvec_pos(osd_req, which, osd_req 2315 drivers/block/rbd.c static int rbd_osd_setup_stat(struct ceph_osd_request *osd_req, int which) osd_req 2331 drivers/block/rbd.c osd_req_op_init(osd_req, which, CEPH_OSD_OP_STAT, 0); osd_req 2332 drivers/block/rbd.c osd_req_op_raw_data_in_pages(osd_req, which, pages, osd_req 2338 drivers/block/rbd.c static int rbd_osd_setup_copyup(struct ceph_osd_request *osd_req, int which, osd_req 2341 drivers/block/rbd.c struct rbd_obj_request *obj_req = osd_req->r_priv; osd_req 2344 drivers/block/rbd.c ret = osd_req_op_cls_init(osd_req, which, "rbd", "copyup"); osd_req 2348 drivers/block/rbd.c osd_req_op_cls_request_data_bvecs(osd_req, which, obj_req->copyup_bvecs, osd_req 2359 drivers/block/rbd.c static void __rbd_osd_setup_write_ops(struct ceph_osd_request *osd_req, osd_req 2362 drivers/block/rbd.c struct rbd_obj_request *obj_req = osd_req->r_priv; osd_req 2368 drivers/block/rbd.c osd_req_op_alloc_hint_init(osd_req, which++, osd_req 2378 drivers/block/rbd.c osd_req_op_extent_init(osd_req, which, opcode, osd_req 2380 drivers/block/rbd.c rbd_osd_setup_data(osd_req, which); osd_req 2405 drivers/block/rbd.c static void __rbd_osd_setup_discard_ops(struct ceph_osd_request *osd_req, osd_req 2408 drivers/block/rbd.c struct rbd_obj_request *obj_req = osd_req->r_priv; osd_req 2412 drivers/block/rbd.c osd_req_op_init(osd_req, which, CEPH_OSD_OP_DELETE, 0); osd_req 2414 drivers/block/rbd.c osd_req_op_extent_init(osd_req, which, osd_req 2463 drivers/block/rbd.c static void __rbd_osd_setup_zeroout_ops(struct ceph_osd_request *osd_req, osd_req 2466 drivers/block/rbd.c struct rbd_obj_request *obj_req = osd_req->r_priv; osd_req 2472 drivers/block/rbd.c osd_req_op_init(osd_req, which++, osd_req 2477 drivers/block/rbd.c osd_req_op_init(osd_req, which++, osd_req 2486 drivers/block/rbd.c osd_req_op_extent_init(osd_req, which, opcode, osd_req 2536 drivers/block/rbd.c static void rbd_osd_setup_write_ops(struct ceph_osd_request *osd_req, osd_req 2539 drivers/block/rbd.c struct rbd_obj_request *obj_req = osd_req->r_priv; osd_req 2543 drivers/block/rbd.c __rbd_osd_setup_write_ops(osd_req, which); osd_req 2546 drivers/block/rbd.c __rbd_osd_setup_discard_ops(osd_req, which); osd_req 2549 drivers/block/rbd.c __rbd_osd_setup_zeroout_ops(osd_req, which); osd_req 2911 drivers/block/rbd.c struct ceph_osd_request *osd_req; osd_req 2914 drivers/block/rbd.c osd_req = __rbd_obj_add_osd_request(obj_req, NULL, 1); osd_req 2915 drivers/block/rbd.c if (IS_ERR(osd_req)) osd_req 2916 drivers/block/rbd.c return PTR_ERR(osd_req); osd_req 2918 drivers/block/rbd.c osd_req_op_extent_init(osd_req, 0, CEPH_OSD_OP_READ, osd_req 2920 drivers/block/rbd.c rbd_osd_setup_data(osd_req, 0); osd_req 2921 drivers/block/rbd.c rbd_osd_format_read(osd_req); osd_req 2923 drivers/block/rbd.c ret = ceph_osdc_alloc_messages(osd_req, GFP_NOIO); osd_req 2927 drivers/block/rbd.c rbd_osd_submit(osd_req); osd_req 3099 drivers/block/rbd.c struct ceph_osd_request *osd_req; osd_req 3107 drivers/block/rbd.c osd_req = rbd_obj_add_osd_request(obj_req, num_ops); osd_req 3108 drivers/block/rbd.c if (IS_ERR(osd_req)) osd_req 3109 drivers/block/rbd.c return PTR_ERR(osd_req); osd_req 3112 drivers/block/rbd.c ret = rbd_osd_setup_stat(osd_req, which++); osd_req 3117 drivers/block/rbd.c rbd_osd_setup_write_ops(osd_req, which); osd_req 3118 drivers/block/rbd.c rbd_osd_format_write(osd_req); osd_req 3120 drivers/block/rbd.c ret = ceph_osdc_alloc_messages(osd_req, GFP_NOIO); osd_req 3124 drivers/block/rbd.c rbd_osd_submit(osd_req); osd_req 3151 drivers/block/rbd.c struct ceph_osd_request *osd_req; osd_req 3157 drivers/block/rbd.c osd_req = __rbd_obj_add_osd_request(obj_req, &rbd_empty_snapc, 1); osd_req 3158 drivers/block/rbd.c if (IS_ERR(osd_req)) osd_req 3159 drivers/block/rbd.c return PTR_ERR(osd_req); osd_req 3161 drivers/block/rbd.c ret = rbd_osd_setup_copyup(osd_req, 0, bytes); osd_req 3165 drivers/block/rbd.c rbd_osd_format_write(osd_req); osd_req 3167 drivers/block/rbd.c ret = ceph_osdc_alloc_messages(osd_req, GFP_NOIO); osd_req 3171 drivers/block/rbd.c rbd_osd_submit(osd_req); osd_req 3178 drivers/block/rbd.c struct ceph_osd_request *osd_req; osd_req 3188 drivers/block/rbd.c osd_req = rbd_obj_add_osd_request(obj_req, num_ops); osd_req 3189 drivers/block/rbd.c if (IS_ERR(osd_req)) osd_req 3190 drivers/block/rbd.c return PTR_ERR(osd_req); osd_req 3193 drivers/block/rbd.c ret = rbd_osd_setup_copyup(osd_req, which++, bytes); osd_req 3198 drivers/block/rbd.c rbd_osd_setup_write_ops(osd_req, which); osd_req 3199 drivers/block/rbd.c rbd_osd_format_write(osd_req); osd_req 3201 drivers/block/rbd.c ret = ceph_osdc_alloc_messages(osd_req, GFP_NOIO); osd_req 3205 drivers/block/rbd.c rbd_osd_submit(osd_req); osd_req 402 include/linux/ceph/osd_client.h extern void osd_req_op_init(struct ceph_osd_request *osd_req, osd_req 411 include/linux/ceph/osd_client.h extern void osd_req_op_extent_init(struct ceph_osd_request *osd_req, osd_req 415 include/linux/ceph/osd_client.h extern void osd_req_op_extent_update(struct ceph_osd_request *osd_req, osd_req 417 include/linux/ceph/osd_client.h extern void osd_req_op_extent_dup_last(struct ceph_osd_request *osd_req, osd_req 421 include/linux/ceph/osd_client.h struct ceph_osd_request *osd_req, osd_req 433 include/linux/ceph/osd_client.h void osd_req_op_extent_osd_data_bio(struct ceph_osd_request *osd_req, osd_req 438 include/linux/ceph/osd_client.h void osd_req_op_extent_osd_data_bvecs(struct ceph_osd_request *osd_req, osd_req 442 include/linux/ceph/osd_client.h void osd_req_op_extent_osd_data_bvec_pos(struct ceph_osd_request *osd_req, osd_req 454 include/linux/ceph/osd_client.h void osd_req_op_cls_request_data_bvecs(struct ceph_osd_request *osd_req, osd_req 463 include/linux/ceph/osd_client.h int osd_req_op_cls_init(struct ceph_osd_request *osd_req, unsigned int which, osd_req 465 include/linux/ceph/osd_client.h extern int osd_req_op_xattr_init(struct ceph_osd_request *osd_req, unsigned int which, osd_req 468 include/linux/ceph/osd_client.h extern void osd_req_op_alloc_hint_init(struct ceph_osd_request *osd_req, osd_req 175 net/ceph/osd_client.c osd_req_op_raw_data_in(struct ceph_osd_request *osd_req, unsigned int which) osd_req 177 net/ceph/osd_client.c BUG_ON(which >= osd_req->r_num_ops); osd_req 179 net/ceph/osd_client.c return &osd_req->r_ops[which].raw_data_in; osd_req 183 net/ceph/osd_client.c osd_req_op_extent_osd_data(struct ceph_osd_request *osd_req, osd_req 186 net/ceph/osd_client.c return osd_req_op_data(osd_req, which, extent, osd_data); osd_req 190 net/ceph/osd_client.c void osd_req_op_raw_data_in_pages(struct ceph_osd_request *osd_req, osd_req 197 net/ceph/osd_client.c osd_data = osd_req_op_raw_data_in(osd_req, which); osd_req 203 net/ceph/osd_client.c void osd_req_op_extent_osd_data_pages(struct ceph_osd_request *osd_req, osd_req 210 net/ceph/osd_client.c osd_data = osd_req_op_data(osd_req, which, extent, osd_data); osd_req 216 net/ceph/osd_client.c void osd_req_op_extent_osd_data_pagelist(struct ceph_osd_request *osd_req, osd_req 221 net/ceph/osd_client.c osd_data = osd_req_op_data(osd_req, which, extent, osd_data); osd_req 227 net/ceph/osd_client.c void osd_req_op_extent_osd_data_bio(struct ceph_osd_request *osd_req, osd_req 234 net/ceph/osd_client.c osd_data = osd_req_op_data(osd_req, which, extent, osd_data); osd_req 240 net/ceph/osd_client.c void osd_req_op_extent_osd_data_bvecs(struct ceph_osd_request *osd_req, osd_req 251 net/ceph/osd_client.c osd_data = osd_req_op_data(osd_req, which, extent, osd_data); osd_req 256 net/ceph/osd_client.c void osd_req_op_extent_osd_data_bvec_pos(struct ceph_osd_request *osd_req, osd_req 262 net/ceph/osd_client.c osd_data = osd_req_op_data(osd_req, which, extent, osd_data); osd_req 268 net/ceph/osd_client.c struct ceph_osd_request *osd_req, osd_req 273 net/ceph/osd_client.c osd_data = osd_req_op_data(osd_req, which, cls, request_info); osd_req 278 net/ceph/osd_client.c struct ceph_osd_request *osd_req, osd_req 283 net/ceph/osd_client.c osd_data = osd_req_op_data(osd_req, which, cls, request_data); osd_req 285 net/ceph/osd_client.c osd_req->r_ops[which].cls.indata_len += pagelist->length; osd_req 286 net/ceph/osd_client.c osd_req->r_ops[which].indata_len += pagelist->length; osd_req 290 net/ceph/osd_client.c void osd_req_op_cls_request_data_pages(struct ceph_osd_request *osd_req, osd_req 296 net/ceph/osd_client.c osd_data = osd_req_op_data(osd_req, which, cls, request_data); osd_req 299 net/ceph/osd_client.c osd_req->r_ops[which].cls.indata_len += length; osd_req 300 net/ceph/osd_client.c osd_req->r_ops[which].indata_len += length; osd_req 304 net/ceph/osd_client.c void osd_req_op_cls_request_data_bvecs(struct ceph_osd_request *osd_req, osd_req 315 net/ceph/osd_client.c osd_data = osd_req_op_data(osd_req, which, cls, request_data); osd_req 317 net/ceph/osd_client.c osd_req->r_ops[which].cls.indata_len += bytes; osd_req 318 net/ceph/osd_client.c osd_req->r_ops[which].indata_len += bytes; osd_req 322 net/ceph/osd_client.c void osd_req_op_cls_response_data_pages(struct ceph_osd_request *osd_req, osd_req 328 net/ceph/osd_client.c osd_data = osd_req_op_data(osd_req, which, cls, response_data); osd_req 369 net/ceph/osd_client.c static void osd_req_op_data_release(struct ceph_osd_request *osd_req, osd_req 374 net/ceph/osd_client.c BUG_ON(which >= osd_req->r_num_ops); osd_req 375 net/ceph/osd_client.c op = &osd_req->r_ops[which]; osd_req 748 net/ceph/osd_client.c _osd_req_op_init(struct ceph_osd_request *osd_req, unsigned int which, osd_req 753 net/ceph/osd_client.c BUG_ON(which >= osd_req->r_num_ops); osd_req 756 net/ceph/osd_client.c op = &osd_req->r_ops[which]; osd_req 764 net/ceph/osd_client.c void osd_req_op_init(struct ceph_osd_request *osd_req, osd_req 767 net/ceph/osd_client.c (void)_osd_req_op_init(osd_req, which, opcode, flags); osd_req 771 net/ceph/osd_client.c void osd_req_op_extent_init(struct ceph_osd_request *osd_req, osd_req 776 net/ceph/osd_client.c struct ceph_osd_req_op *op = _osd_req_op_init(osd_req, which, osd_req 795 net/ceph/osd_client.c void osd_req_op_extent_update(struct ceph_osd_request *osd_req, osd_req 801 net/ceph/osd_client.c BUG_ON(which >= osd_req->r_num_ops); osd_req 802 net/ceph/osd_client.c op = &osd_req->r_ops[which]; osd_req 815 net/ceph/osd_client.c void osd_req_op_extent_dup_last(struct ceph_osd_request *osd_req, osd_req 820 net/ceph/osd_client.c BUG_ON(which + 1 >= osd_req->r_num_ops); osd_req 822 net/ceph/osd_client.c prev_op = &osd_req->r_ops[which]; osd_req 823 net/ceph/osd_client.c op = _osd_req_op_init(osd_req, which + 1, prev_op->op, prev_op->flags); osd_req 837 net/ceph/osd_client.c int osd_req_op_cls_init(struct ceph_osd_request *osd_req, unsigned int which, osd_req 846 net/ceph/osd_client.c op = _osd_req_op_init(osd_req, which, CEPH_OSD_OP_CALL, 0); osd_req 870 net/ceph/osd_client.c osd_req_op_cls_request_info_pagelist(osd_req, which, pagelist); osd_req 880 net/ceph/osd_client.c int osd_req_op_xattr_init(struct ceph_osd_request *osd_req, unsigned int which, osd_req 884 net/ceph/osd_client.c struct ceph_osd_req_op *op = _osd_req_op_init(osd_req, which, osd_req 935 net/ceph/osd_client.c void osd_req_op_alloc_hint_init(struct ceph_osd_request *osd_req, osd_req 940 net/ceph/osd_client.c struct ceph_osd_req_op *op = _osd_req_op_init(osd_req, which,