From patchwork Fri Jan 4 14:45:05 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 1933301 Return-Path: X-Original-To: patchwork-ceph-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork2.kernel.org (Postfix) with ESMTP id 17F90DFABD for ; Fri, 4 Jan 2013 14:45:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754763Ab3ADOpI (ORCPT ); Fri, 4 Jan 2013 09:45:08 -0500 Received: from mail-ia0-f181.google.com ([209.85.210.181]:32980 "EHLO mail-ia0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754746Ab3ADOpH (ORCPT ); Fri, 4 Jan 2013 09:45:07 -0500 Received: by mail-ia0-f181.google.com with SMTP id s32so13567585iak.40 for ; Fri, 04 Jan 2013 06:45:07 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:message-id:date:from:user-agent:mime-version:to:subject :references:in-reply-to:content-type:content-transfer-encoding :x-gm-message-state; bh=7FhaqIXIz3zL7Ct9nWYEQvjR4qSswhgIkghkhlFLBak=; b=g9kcJWNk4WQGGk+a75ufCslr7pJJ7EGrtmTkRLXAqIMxH+ExI44JuPapD3DIA1dY1+ SOlzCOSh1LtarlXjAJ/1/hR8fdMeDJTJkZWZN94mnTSilokQJJeHLJw2OJUPgsW+OwKA PiN/RGZw2bgRh+VEBpXssJDo/rY8D17NcFUw8Be6ryvALtoAwnW+Jyw4idRvC2nHv7cL rhQ7Xo/oca/jRPHIM7lIICKiWaPHiVgHC8I2euiVPu2djqR8fDYEwC+NMiuIYml9z9sb RWY3s/MDYS3IM2hQj6g4PKptmE/0AXXMkCXnPNp0IFxCODbt6GsvBlin+DSVfMEOu+Tk nvLg== X-Received: by 10.42.51.142 with SMTP id e14mr40192575icg.2.1357310707209; Fri, 04 Jan 2013 06:45:07 -0800 (PST) Received: from [172.22.22.4] (c-71-195-31-37.hsd1.mn.comcast.net. [71.195.31.37]) by mx.google.com with ESMTPS id bg10sm47012336igc.6.2013.01.04.06.45.05 (version=SSLv3 cipher=OTHER); Fri, 04 Jan 2013 06:45:05 -0800 (PST) Message-ID: <50E6EAF1.7020203@inktank.com> Date: Fri, 04 Jan 2013 08:45:05 -0600 From: Alex Elder User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: "ceph-devel@vger.kernel.org" Subject: [PATCH REPOST 1/4] rbd: pass num_op with ops array References: <50E6EA94.1040001@inktank.com> In-Reply-To: <50E6EA94.1040001@inktank.com> X-Gm-Message-State: ALoCoQkNrorki2nOYfVXoVIu0WK+HBbKzG/CDBHrUnLNigAJwheXVAMaRJLSDRosiYKd23K1iJOg Sender: ceph-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: ceph-devel@vger.kernel.org Add a num_op parameter to rbd_do_request() and rbd_req_sync_op() to indicate the number of entries in the array. The callers of these functions always know how many entries are in the array, so just pass that information down. This is in anticipation of eliminating the extra zero-filled entry in these ops arrays. Signed-off-by: Alex Elder --- drivers/block/rbd.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) u64 ofs, u64 inbound_size, @@ -1281,7 +1283,7 @@ static int rbd_req_sync_op(struct rbd_device *rbd_dev, object_name, ofs, inbound_size, NULL, pages, num_pages, flags, - ops, + num_op, ops, NULL, 0, NULL, linger_req, ver); @@ -1351,7 +1353,7 @@ static int rbd_do_op(struct request *rq, bio, NULL, 0, flags, - ops, + 1, ops, coll, coll_index, rbd_req_cb, 0, NULL); if (ret < 0) @@ -1380,7 +1382,7 @@ static int rbd_req_sync_read(struct rbd_device *rbd_dev, return -ENOMEM; ret = rbd_req_sync_op(rbd_dev, CEPH_OSD_FLAG_READ, - ops, object_name, ofs, len, buf, NULL, ver); + 1, ops, object_name, ofs, len, buf, NULL, ver); rbd_destroy_ops(ops); return ret; @@ -1408,7 +1410,7 @@ static int rbd_req_sync_notify_ack(struct rbd_device *rbd_dev, rbd_dev->header_name, 0, 0, NULL, NULL, 0, CEPH_OSD_FLAG_READ, - ops, + 1, ops, NULL, 0, rbd_simple_req_cb, 0, NULL); @@ -1460,7 +1462,7 @@ static int rbd_req_sync_watch(struct rbd_device *rbd_dev) ret = rbd_req_sync_op(rbd_dev, CEPH_OSD_FLAG_WRITE | CEPH_OSD_FLAG_ONDISK, - ops, + 1, ops, rbd_dev->header_name, 0, 0, NULL, &rbd_dev->watch_request, NULL); @@ -1497,7 +1499,7 @@ static int rbd_req_sync_unwatch(struct rbd_device *rbd_dev) ret = rbd_req_sync_op(rbd_dev, CEPH_OSD_FLAG_WRITE | CEPH_OSD_FLAG_ONDISK, - ops, + 1, ops, rbd_dev->header_name, 0, 0, NULL, NULL, NULL); @@ -1548,7 +1550,7 @@ static int rbd_req_sync_exec(struct rbd_device *rbd_dev, ops[0].cls.indata = outbound; ops[0].cls.indata_len = outbound_size; - ret = rbd_req_sync_op(rbd_dev, CEPH_OSD_FLAG_READ, ops, + ret = rbd_req_sync_op(rbd_dev, CEPH_OSD_FLAG_READ, 1, ops, object_name, 0, inbound_size, inbound, NULL, ver); diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index 6b9643a..cee1334 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c @@ -1119,6 +1119,7 @@ static int rbd_do_request(struct request *rq, struct page **pages, int num_pages, int flags, + unsigned int num_op, struct ceph_osd_req_op *ops, struct rbd_req_coll *coll, int coll_index, @@ -1259,6 +1260,7 @@ static void rbd_simple_req_cb(struct ceph_osd_request *osd_req, */ static int rbd_req_sync_op(struct rbd_device *rbd_dev, int flags, + unsigned int num_op, struct ceph_osd_req_op *ops, const char *object_name,