Lines Matching refs:img_request

248 	struct rbd_img_request	*img_request;  member
1303 switch (obj_req->img_request->data_type) { in rbd_obj_zero_range()
1325 static void rbd_img_request_get(struct rbd_img_request *img_request) in rbd_img_request_get() argument
1327 dout("%s: img %p (was %d)\n", __func__, img_request, in rbd_img_request_get()
1328 kref_read(&img_request->kref)); in rbd_img_request_get()
1329 kref_get(&img_request->kref); in rbd_img_request_get()
1333 static void rbd_img_request_put(struct rbd_img_request *img_request) in rbd_img_request_put() argument
1335 rbd_assert(img_request != NULL); in rbd_img_request_put()
1336 dout("%s: img %p (was %d)\n", __func__, img_request, in rbd_img_request_put()
1337 kref_read(&img_request->kref)); in rbd_img_request_put()
1338 kref_put(&img_request->kref, rbd_img_request_destroy); in rbd_img_request_put()
1341 static inline void rbd_img_obj_request_add(struct rbd_img_request *img_request, in rbd_img_obj_request_add() argument
1344 rbd_assert(obj_request->img_request == NULL); in rbd_img_obj_request_add()
1347 obj_request->img_request = img_request; in rbd_img_obj_request_add()
1348 img_request->obj_request_count++; in rbd_img_obj_request_add()
1349 img_request->pending_count++; in rbd_img_obj_request_add()
1350 dout("%s: img %p obj %p\n", __func__, img_request, obj_request); in rbd_img_obj_request_add()
1353 static inline void rbd_img_obj_request_del(struct rbd_img_request *img_request, in rbd_img_obj_request_del() argument
1356 dout("%s: img %p obj %p\n", __func__, img_request, obj_request); in rbd_img_obj_request_del()
1358 rbd_assert(img_request->obj_request_count > 0); in rbd_img_obj_request_del()
1359 img_request->obj_request_count--; in rbd_img_obj_request_del()
1360 rbd_assert(obj_request->img_request == img_request); in rbd_img_obj_request_del()
1379 static void img_request_layered_set(struct rbd_img_request *img_request) in img_request_layered_set() argument
1381 set_bit(IMG_REQ_LAYERED, &img_request->flags); in img_request_layered_set()
1385 static void img_request_layered_clear(struct rbd_img_request *img_request) in img_request_layered_clear() argument
1387 clear_bit(IMG_REQ_LAYERED, &img_request->flags); in img_request_layered_clear()
1391 static bool img_request_layered_test(struct rbd_img_request *img_request) in img_request_layered_test() argument
1394 return test_bit(IMG_REQ_LAYERED, &img_request->flags) != 0; in img_request_layered_test()
1399 struct rbd_device *rbd_dev = obj_req->img_request->rbd_dev; in rbd_obj_is_entire()
1407 struct rbd_device *rbd_dev = obj_req->img_request->rbd_dev; in rbd_obj_is_tail()
1443 if (!obj_req->result && !rbd_img_is_write(obj_req->img_request)) in rbd_osd_req_callback()
1461 osd_req->r_snapid = obj_request->img_request->snap_id; in rbd_osd_req_format_read()
1476 struct rbd_img_request *img_req = obj_req->img_request; in rbd_osd_req_create()
1545 switch (obj_request->img_request->data_type) { in rbd_obj_request_destroy()
1641 struct rbd_img_request *img_request; in rbd_img_request_create() local
1643 img_request = kmem_cache_zalloc(rbd_img_request_cache, GFP_NOIO); in rbd_img_request_create()
1644 if (!img_request) in rbd_img_request_create()
1647 img_request->rbd_dev = rbd_dev; in rbd_img_request_create()
1648 img_request->op_type = op_type; in rbd_img_request_create()
1649 if (!rbd_img_is_write(img_request)) in rbd_img_request_create()
1650 img_request->snap_id = rbd_dev->spec->snap_id; in rbd_img_request_create()
1652 img_request->snapc = snapc; in rbd_img_request_create()
1655 img_request_layered_set(img_request); in rbd_img_request_create()
1657 spin_lock_init(&img_request->completion_lock); in rbd_img_request_create()
1658 INIT_LIST_HEAD(&img_request->object_extents); in rbd_img_request_create()
1659 kref_init(&img_request->kref); in rbd_img_request_create()
1662 obj_op_name(op_type), img_request); in rbd_img_request_create()
1663 return img_request; in rbd_img_request_create()
1668 struct rbd_img_request *img_request; in rbd_img_request_destroy() local
1672 img_request = container_of(kref, struct rbd_img_request, kref); in rbd_img_request_destroy()
1674 dout("%s: img %p\n", __func__, img_request); in rbd_img_request_destroy()
1676 for_each_obj_request_safe(img_request, obj_request, next_obj_request) in rbd_img_request_destroy()
1677 rbd_img_obj_request_del(img_request, obj_request); in rbd_img_request_destroy()
1678 rbd_assert(img_request->obj_request_count == 0); in rbd_img_request_destroy()
1680 if (img_request_layered_test(img_request)) { in rbd_img_request_destroy()
1681 img_request_layered_clear(img_request); in rbd_img_request_destroy()
1682 rbd_dev_parent_put(img_request->rbd_dev); in rbd_img_request_destroy()
1685 if (rbd_img_is_write(img_request)) in rbd_img_request_destroy()
1686 ceph_put_snap_context(img_request->snapc); in rbd_img_request_destroy()
1688 kmem_cache_free(rbd_img_request_cache, img_request); in rbd_img_request_destroy()
1718 struct rbd_device *rbd_dev = obj_req->img_request->rbd_dev; in rbd_obj_calc_img_extents()
1740 switch (obj_req->img_request->data_type) { in rbd_osd_req_setup_data()
1800 struct rbd_device *rbd_dev = obj_req->img_request->rbd_dev; in __rbd_obj_setup_write()
2238 static void rbd_img_request_submit(struct rbd_img_request *img_request) in rbd_img_request_submit() argument
2242 dout("%s: img %p\n", __func__, img_request); in rbd_img_request_submit()
2244 rbd_img_request_get(img_request); in rbd_img_request_submit()
2245 for_each_obj_request(img_request, obj_request) in rbd_img_request_submit()
2248 rbd_img_request_put(img_request); in rbd_img_request_submit()
2253 struct rbd_img_request *img_req = obj_req->img_request; in rbd_obj_read_from_parent()
2300 struct rbd_device *rbd_dev = obj_req->img_request->rbd_dev; in rbd_obj_handle_read()
2396 switch (obj_req->img_request->op_type) { in rbd_obj_issue_copyup()
2442 struct rbd_device *rbd_dev = obj_req->img_request->rbd_dev; in rbd_obj_handle_write_guard()
2522 switch (obj_req->img_request->op_type) { in __rbd_obj_handle_request()
2547 struct rbd_img_request *img_req = obj_req->img_request; in rbd_obj_end_request()
2602 img_req = obj_req->img_request; in rbd_obj_handle_request()
3629 struct rbd_img_request *img_request; in rbd_queue_workfn() local
3714 img_request = rbd_img_request_create(rbd_dev, op_type, snapc); in rbd_queue_workfn()
3715 if (!img_request) { in rbd_queue_workfn()
3719 img_request->rq = rq; in rbd_queue_workfn()
3723 result = rbd_img_fill_nodata(img_request, offset, length); in rbd_queue_workfn()
3725 result = rbd_img_fill_from_bio(img_request, offset, length, in rbd_queue_workfn()
3730 rbd_img_request_submit(img_request); in rbd_queue_workfn()
3736 rbd_img_request_put(img_request); in rbd_queue_workfn()