From patchwork Thu Oct 11 02:19:48 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 1580471 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 2BA89DFB34 for ; Thu, 11 Oct 2012 02:19:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964912Ab2JKCTy (ORCPT ); Wed, 10 Oct 2012 22:19:54 -0400 Received: from mail-pa0-f46.google.com ([209.85.220.46]:39012 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964918Ab2JKCTw (ORCPT ); Wed, 10 Oct 2012 22:19:52 -0400 Received: by mail-pa0-f46.google.com with SMTP id hz1so1233911pad.19 for ; Wed, 10 Oct 2012 19:19:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding :x-gm-message-state; bh=uqUFQd4yEKV+swtxYa1lSXYjIuzh0XrYx1vGeal439A=; b=EyLAG9GxwBvOdbqrIV6GZICqDrPOqd3BdV9wg+2yGA7L33MbgrqF2UI9H825NpmcjR kgqUTVL1TKcAKq2TStfgUI2JHflJCpdzioboeEPl2UQTSiQe/FOQUvzaYuNtR93mkRvh JDLhgmNL6YlMnVimNkuYJSVzrscomoKb9lcDbB21oMoUeMrMuHIUR6oiaTpqIR4o3rku PwfbJiq9LyTwP4Az9gIUjOnqrI3fcqGGww+o0gditHdtUKnJjG59KH/bxl+BQzmt9EoQ JQdMwrrQIIyUMe4f3vt3EbLKtPdW1wtvO/8EzVRXFATYANR9xwALfKgmIUbFLda8lDEh BSEw== Received: by 10.68.137.228 with SMTP id ql4mr3087399pbb.125.1349921991570; Wed, 10 Oct 2012 19:19:51 -0700 (PDT) Received: from ?IPv6:2607:f298:a:607:1059:f4c1:babe:9559? ([2607:f298:a:607:1059:f4c1:babe:9559]) by mx.google.com with ESMTPS id sj5sm1906091pbc.30.2012.10.10.19.19.50 (version=SSLv3 cipher=OTHER); Wed, 10 Oct 2012 19:19:50 -0700 (PDT) Message-ID: <50762CC4.60506@inktank.com> Date: Wed, 10 Oct 2012 19:19:48 -0700 From: Alex Elder User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120912 Thunderbird/15.0.1 MIME-Version: 1.0 To: ceph-devel@vger.kernel.org Subject: [PATCH 2/3] rbd: kill drop rbd_do_op() opcode and flags References: <50762C54.40101@inktank.com> In-Reply-To: <50762C54.40101@inktank.com> X-Gm-Message-State: ALoCoQkuYtHVnddTz+QBZj+lG7ZlpJ7PClr3bxZi4stDu6ln+EZ6TiGU1rfyXG6gvI8Bxs951T7F Sender: ceph-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: ceph-devel@vger.kernel.org The only callers of rbd_do_op() are in rbd_rq_fn(), where call one is used for writes and the other used for reads. The request passed to rbd_do_op() already encodes the I/O direction, and that information can be used inside the function to set the opcode and flags value (rather than passing them in as arguments). So get rid of the opcode and flags arguments to rbd_do_op(). Signed-off-by: Alex Elder Reviewed-by: Josh Durgin --- drivers/block/rbd.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index cc74b36..396af14 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c @@ -1164,7 +1164,6 @@ static int rbd_do_op(struct request *rq, struct rbd_device *rbd_dev, struct ceph_snap_context *snapc, u64 snapid, - int opcode, int flags, u64 ofs, u64 len, struct bio *bio, struct rbd_req_coll *coll, @@ -1176,6 +1175,8 @@ static int rbd_do_op(struct request *rq, int ret; struct ceph_osd_req_op *ops; u32 payload_len; + int opcode; + int flags; seg_name = rbd_segment_name(rbd_dev, ofs); if (!seg_name) @@ -1183,7 +1184,15 @@ static int rbd_do_op(struct request *rq, seg_len = rbd_segment_length(rbd_dev, ofs, len); seg_ofs = rbd_segment_offset(rbd_dev, ofs); - payload_len = (flags & CEPH_OSD_FLAG_WRITE ? seg_len : 0); + if (rq_data_dir(rq) == WRITE) { + opcode = CEPH_OSD_OP_WRITE; + flags = CEPH_OSD_FLAG_WRITE|CEPH_OSD_FLAG_ONDISK; + payload_len = seg_len; + } else { + opcode = CEPH_OSD_OP_READ; + flags = CEPH_OSD_FLAG_READ; + payload_len = 0; + } ret = -ENOMEM; ops = rbd_create_rw_ops(1, opcode, payload_len); @@ -1519,16 +1528,11 @@ static void rbd_rq_fn(struct request_queue *q) if (do_write) (void) rbd_do_op(rq, rbd_dev, snapc, CEPH_NOSNAP, - CEPH_OSD_OP_WRITE, - CEPH_OSD_FLAG_WRITE | - CEPH_OSD_FLAG_ONDISK, ofs, op_size, bio, coll, cur_seg); else (void) rbd_do_op(rq, rbd_dev, NULL, rbd_dev->mapping.snap_id, - CEPH_OSD_OP_READ, - CEPH_OSD_FLAG_READ, ofs, op_size, bio, coll, cur_seg); next_seg: