From eebc3025690aa7b8ce9c9e875e8254a4a310d676 Mon Sep 17 00:00:00 2001 From: Alex Elder Date: Thu, 31 Jan 2013 16:02:00 -0600 Subject: [PATCH] --- yaml --- r: 359649 b: refs/heads/master c: 9cbb1d7268afa997a7f96d779470cc57d28e1a13 h: refs/heads/master i: 359647: 3ddf936e885e6305da11f62da901e8d53cd0110e v: v3 --- [refs] | 2 +- trunk/drivers/block/rbd.c | 2 -- trunk/net/ceph/osd_client.c | 7 ++++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index f0202e436e52..6f46485bbbc9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1e32d34cfa6759df58b5f4002664241f2a0fef6a +refs/heads/master: 9cbb1d7268afa997a7f96d779470cc57d28e1a13 diff --git a/trunk/drivers/block/rbd.c b/trunk/drivers/block/rbd.c index 3ba4836f024c..14a6967291d3 100644 --- a/trunk/drivers/block/rbd.c +++ b/trunk/drivers/block/rbd.c @@ -1342,8 +1342,6 @@ static struct ceph_osd_request *rbd_osd_req_create( case OBJ_REQUEST_BIO: rbd_assert(obj_request->bio_list != NULL); osd_req->r_bio = obj_request->bio_list; - /* osd client requires "num pages" even for bio */ - osd_req->r_num_pages = calc_pages_for(offset, length); break; case OBJ_REQUEST_PAGES: osd_req->r_pages = obj_request->pages; diff --git a/trunk/net/ceph/osd_client.c b/trunk/net/ceph/osd_client.c index ba03648533c0..d9d58bbe9f9a 100644 --- a/trunk/net/ceph/osd_client.c +++ b/trunk/net/ceph/osd_client.c @@ -137,10 +137,11 @@ void ceph_osdc_release_request(struct kref *kref) if (req->r_request) ceph_msg_put(req->r_request); if (req->r_con_filling_msg) { - dout("%s revoking pages %p from con %p\n", __func__, - req->r_pages, req->r_con_filling_msg); + dout("%s revoking msg %p from con %p\n", __func__, + req->r_reply, req->r_con_filling_msg); ceph_msg_revoke_incoming(req->r_reply); req->r_con_filling_msg->ops->put(req->r_con_filling_msg); + req->r_con_filling_msg = NULL; } if (req->r_reply) ceph_msg_put(req->r_reply); @@ -1981,7 +1982,7 @@ static struct ceph_msg *get_reply(struct ceph_connection *con, if (data_len > 0) { int want = calc_pages_for(req->r_page_alignment, data_len); - if (unlikely(req->r_num_pages < want)) { + if (req->r_pages && unlikely(req->r_num_pages < want)) { pr_warning("tid %lld reply has %d bytes %d pages, we" " had only %d pages ready\n", tid, data_len, want, req->r_num_pages);