Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 373471
b: refs/heads/master
c: 9d4df01
h: refs/heads/master
i:
  373469: 1042424
  373467: cf5623a
  373463: 3a4c30f
  373455: f9e04ed
  373439: 60fd963
v: v3
  • Loading branch information
Alex Elder authored and Sage Weil committed May 2, 2013
1 parent e8e1ea0 commit bd7074f
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 22 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 6c57b5545d46e276381a15a59283c984cf3f94e3
refs/heads/master: 9d4df01f08e2f2a777f3476741ff4ef8afb04be6
49 changes: 28 additions & 21 deletions trunk/drivers/block/rbd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1489,28 +1489,31 @@ static void rbd_osd_req_callback(struct ceph_osd_request *osd_req,
rbd_obj_request_complete(obj_request);
}

static void rbd_osd_req_format(struct rbd_obj_request *obj_request,
bool write_request)
static void rbd_osd_req_format_read(struct rbd_obj_request *obj_request)
{
struct rbd_img_request *img_request = obj_request->img_request;
struct ceph_osd_request *osd_req = obj_request->osd_req;
struct ceph_snap_context *snapc = NULL;
u64 snap_id = CEPH_NOSNAP;
struct timespec *mtime = NULL;
struct timespec now;
u64 snap_id;

rbd_assert(osd_req != NULL);

if (write_request) {
now = CURRENT_TIME;
mtime = &now;
if (img_request)
snapc = img_request->snapc;
} else if (img_request) {
snap_id = img_request->snap_id;
}
snap_id = img_request ? img_request->snap_id : CEPH_NOSNAP;
ceph_osdc_build_request(osd_req, obj_request->offset,
NULL, snap_id, NULL);
}

static void rbd_osd_req_format_write(struct rbd_obj_request *obj_request)
{
struct rbd_img_request *img_request = obj_request->img_request;
struct ceph_osd_request *osd_req = obj_request->osd_req;
struct ceph_snap_context *snapc;
struct timespec mtime = CURRENT_TIME;

rbd_assert(osd_req != NULL);

snapc = img_request ? img_request->snapc : NULL;
ceph_osdc_build_request(osd_req, obj_request->offset,
snapc, snap_id, mtime);
snapc, CEPH_NOSNAP, &mtime);
}

static struct ceph_osd_request *rbd_osd_req_create(
Expand Down Expand Up @@ -1845,7 +1848,11 @@ static int rbd_img_request_fill_bio(struct rbd_img_request *img_request,
0, 0);
osd_req_op_extent_osd_data_bio(osd_req, 0,
obj_request->bio_list, obj_request->length);
rbd_osd_req_format(obj_request, write_request);

if (write_request)
rbd_osd_req_format_write(obj_request);
else
rbd_osd_req_format_read(obj_request);

obj_request->img_offset = img_offset;
rbd_img_obj_request_add(img_request, obj_request);
Expand Down Expand Up @@ -1969,7 +1976,7 @@ static int rbd_img_obj_exists_submit(struct rbd_obj_request *obj_request)
osd_req_op_init(stat_request->osd_req, 0, CEPH_OSD_OP_STAT);
osd_req_op_raw_data_in_pages(stat_request->osd_req, 0, pages, size, 0,
false, false);
rbd_osd_req_format(stat_request, false);
rbd_osd_req_format_read(stat_request);

osdc = &rbd_dev->rbd_client->client->osdc;
ret = rbd_obj_request_submit(osdc, stat_request);
Expand Down Expand Up @@ -2091,7 +2098,7 @@ static int rbd_obj_notify_ack(struct rbd_device *rbd_dev,

osd_req_op_watch_init(obj_request->osd_req, 0, CEPH_OSD_OP_NOTIFY_ACK,
notify_id, ver, 0);
rbd_osd_req_format(obj_request, false);
rbd_osd_req_format_read(obj_request);

ret = rbd_obj_request_submit(osdc, obj_request);
out:
Expand Down Expand Up @@ -2161,7 +2168,7 @@ static int rbd_dev_header_watch_sync(struct rbd_device *rbd_dev, int start)
osd_req_op_watch_init(obj_request->osd_req, 0, CEPH_OSD_OP_WATCH,
rbd_dev->watch_event->cookie,
rbd_dev->header.obj_version, start);
rbd_osd_req_format(obj_request, true);
rbd_osd_req_format_write(obj_request);

ret = rbd_obj_request_submit(osdc, obj_request);
if (ret)
Expand Down Expand Up @@ -2262,7 +2269,7 @@ static int rbd_obj_method_sync(struct rbd_device *rbd_dev,
osd_req_op_cls_response_data_pages(obj_request->osd_req, 0,
obj_request->pages, inbound_size,
0, false, false);
rbd_osd_req_format(obj_request, false);
rbd_osd_req_format_read(obj_request);

ret = rbd_obj_request_submit(osdc, obj_request);
if (ret)
Expand Down Expand Up @@ -2473,7 +2480,7 @@ static int rbd_obj_read_sync(struct rbd_device *rbd_dev,
obj_request->length,
obj_request->offset & ~PAGE_MASK,
false, false);
rbd_osd_req_format(obj_request, false);
rbd_osd_req_format_read(obj_request);

ret = rbd_obj_request_submit(osdc, obj_request);
if (ret)
Expand Down

0 comments on commit bd7074f

Please sign in to comment.