rbd: remove rbd_img_request_fill() and helpers
authorIlya Dryomov <idryomov@gmail.com>
Tue, 6 Feb 2018 18:26:34 +0000 (19:26 +0100)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 2 Apr 2018 08:12:43 +0000 (10:12 +0200)
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
drivers/block/rbd.c

index 24f169f3321970a520c03ee043682b8a9549c464..a22d265b30dfdd2add9628944071735e508a31c8 100644 (file)
@@ -1207,27 +1207,6 @@ static void rbd_dev_mapping_clear(struct rbd_device *rbd_dev)
        rbd_dev->mapping.features = 0;
 }
 
-static u64 rbd_segment_offset(struct rbd_device *rbd_dev, u64 offset)
-{
-       u64 segment_size = rbd_obj_bytes(&rbd_dev->header);
-
-       return offset & (segment_size - 1);
-}
-
-static u64 rbd_segment_length(struct rbd_device *rbd_dev,
-                               u64 offset, u64 length)
-{
-       u64 segment_size = rbd_obj_bytes(&rbd_dev->header);
-
-       offset &= segment_size - 1;
-
-       rbd_assert(length <= U64_MAX - offset);
-       if (offset + length > segment_size)
-               length = segment_size - offset;
-
-       return length;
-}
-
 static void zero_bvec(struct bio_vec *bv)
 {
        void *buf;
@@ -1977,83 +1956,6 @@ static int __rbd_img_fill_request(struct rbd_img_request *img_req)
        return 0;
 }
 
-/*
- * Split up an image request into one or more object requests, each
- * to a different object.  The "type" parameter indicates whether
- * "data_desc" is the pointer to the head of a list of bio
- * structures, or the base of a page array.  In either case this
- * function assumes data_desc describes memory sufficient to hold
- * all data described by the image request.
- */
-static int rbd_img_request_fill(struct rbd_img_request *img_request,
-                                       enum obj_request_type type,
-                                       void *data_desc)
-{
-       struct rbd_device *rbd_dev = img_request->rbd_dev;
-       struct rbd_obj_request *obj_request = NULL;
-       struct rbd_obj_request *next_obj_request;
-       struct ceph_bio_iter bio_it;
-       struct ceph_bvec_iter bvec_it;
-       u64 img_offset;
-       u64 resid;
-
-       dout("%s: img %p type %d data_desc %p\n", __func__, img_request,
-               (int)type, data_desc);
-
-       img_offset = img_request->offset;
-       resid = img_request->length;
-       rbd_assert(resid > 0);
-
-       if (type == OBJ_REQUEST_BIO) {
-               bio_it = *(struct ceph_bio_iter *)data_desc;
-               rbd_assert(img_offset ==
-                          bio_it.iter.bi_sector << SECTOR_SHIFT);
-       } else if (type == OBJ_REQUEST_BVECS) {
-               bvec_it = *(struct ceph_bvec_iter *)data_desc;
-       }
-
-       while (resid) {
-               u64 object_no = img_offset >> rbd_dev->header.obj_order;
-               u64 offset = rbd_segment_offset(rbd_dev, img_offset);
-               u64 length = rbd_segment_length(rbd_dev, img_offset, resid);
-
-               obj_request = rbd_obj_request_create();
-               if (!obj_request)
-                       goto out_unwind;
-
-               obj_request->ex.oe_objno = object_no;
-               obj_request->ex.oe_off = offset;
-               obj_request->ex.oe_len = length;
-
-               /*
-                * set obj_request->img_request before creating the
-                * osd_request so that it gets the right snapc
-                */
-               rbd_img_obj_request_add(img_request, obj_request);
-
-               if (type == OBJ_REQUEST_BIO) {
-                       obj_request->bio_pos = bio_it;
-                       ceph_bio_iter_advance(&bio_it, length);
-               } else if (type == OBJ_REQUEST_BVECS) {
-                       obj_request->bvec_pos = bvec_it;
-                       ceph_bvec_iter_shorten(&obj_request->bvec_pos, length);
-                       ceph_bvec_iter_advance(&bvec_it, length);
-               }
-
-               img_offset += length;
-               resid -= length;
-       }
-
-       img_request->data_type = type;
-       return __rbd_img_fill_request(img_request);
-
-out_unwind:
-       for_each_obj_request_safe(img_request, obj_request, next_obj_request)
-               rbd_img_obj_request_del(img_request, obj_request);
-
-       return -ENOMEM;
-}
-
 union rbd_img_fill_iter {
        struct ceph_bio_iter    bio_iter;
        struct ceph_bvec_iter   bvec_iter;