From patchwork Thu Jan 3 19:06:06 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 1929161 Return-Path: X-Original-To: patchwork-ceph-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id E5D4B3FE37 for ; Thu, 3 Jan 2013 19:06:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753810Ab3ACTGJ (ORCPT ); Thu, 3 Jan 2013 14:06:09 -0500 Received: from mail-ia0-f174.google.com ([209.85.210.174]:43429 "EHLO mail-ia0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753707Ab3ACTGI (ORCPT ); Thu, 3 Jan 2013 14:06:08 -0500 Received: by mail-ia0-f174.google.com with SMTP id y25so12855341iay.5 for ; Thu, 03 Jan 2013 11:06:08 -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=/OJsa5kftiG85YsIidWPin6yYYfRRJAT6w9eMroijoM=; b=bbx3v+HrzWc2BHAP8x0dqUYYdkWCsz/pPPnpIZXiHG4QzxrcBQtw4zmlgviAmwjxTG AKpkjVfGhAEKRMEFcNrRiWm0Rmxdlzzi158hV/yMZO3Ja8q4bbyl0CaXtOvSJEgJ5F8t 9CS8fBUftrS+ZqLb573cuXW9b3qwrahNIbKrQqmG9JQ0mlFpYdIaEIHIPvBKP7P9iUMv yY72upgpoFYOvt5W3DiDToUVTLnoErpEnnl1geSi5Fy+Pq1892hr4RreKQ1bvuHCWcu/ PqdQjYPzpOxB7gkZ4dSRqpL7DLryeWqLABZB4KCVcOccHHD7xROUMWa0s7vo+OdaMJIb hNhg== X-Received: by 10.42.55.69 with SMTP id u5mr15875063icg.28.1357239968089; Thu, 03 Jan 2013 11:06:08 -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 k5sm7382794igq.9.2013.01.03.11.06.06 (version=SSLv3 cipher=OTHER); Thu, 03 Jan 2013 11:06:07 -0800 (PST) Message-ID: <50E5D69E.8010609@inktank.com> Date: Thu, 03 Jan 2013 13:06:06 -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 2/4] rbd: kill rbd_spec->image_name_len References: <50E5D641.2010405@inktank.com> In-Reply-To: <50E5D641.2010405@inktank.com> X-Gm-Message-State: ALoCoQkDkOoaEfSD2ZBxshbpuS3LJxEF4Ss2C/18NSzhcayyBh3KrOlbdBaLs2bbeqpuZBD1cbc2 Sender: ceph-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: ceph-devel@vger.kernel.org There may have been a benefit to hanging on to the length of an image name before, but there is really none now. The only time it's used is when probing for rbd images, so we can just compute the length then. Signed-off-by: Alex Elder --- drivers/block/rbd.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) reply_buf = kmalloc(size, GFP_KERNEL); @@ -2631,14 +2630,12 @@ static int rbd_dev_probe_update_spec(struct rbd_device *rbd_dev) /* Fetch the image name; tolerate failure here */ name = rbd_dev_image_name(rbd_dev); - if (name) { - rbd_dev->spec->image_name_len = strlen(name); + if (name) rbd_dev->spec->image_name = (char *) name; - } else { + else pr_warning(RBD_DRV_NAME "%d " "unable to get image name for image id %s\n", rbd_dev->major, rbd_dev->spec->image_id); - } /* Look up the snapshot name. */ @@ -3252,7 +3249,7 @@ static int rbd_add_parse_args(const char *buf, if (!*spec->pool_name) goto out_err; /* Missing pool name */ - spec->image_name = dup_token(&buf, &spec->image_name_len); + spec->image_name = dup_token(&buf, NULL); if (!spec->image_name) goto out_mem; if (!*spec->image_name) @@ -3342,7 +3339,7 @@ static int rbd_dev_image_id(struct rbd_device *rbd_dev) * First, see if the format 2 image id file exists, and if * so, get the image's persistent id from it. */ - size = sizeof (RBD_ID_PREFIX) + rbd_dev->spec->image_name_len; + size = sizeof (RBD_ID_PREFIX) + strlen(rbd_dev->spec->image_name); object_name = kmalloc(size, GFP_NOIO); if (!object_name) return -ENOMEM; @@ -3400,7 +3397,7 @@ static int rbd_dev_v1_probe(struct rbd_device *rbd_dev) /* Record the header object name for this rbd image. */ - size = rbd_dev->spec->image_name_len + sizeof (RBD_SUFFIX); + size = strlen(rbd_dev->spec->image_name) + sizeof (RBD_SUFFIX); rbd_dev->header_name = kmalloc(size, GFP_KERNEL); if (!rbd_dev->header_name) { ret = -ENOMEM; diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index 128978c..a002984 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c @@ -147,7 +147,6 @@ struct rbd_spec { char *image_id; size_t image_id_len; char *image_name; - size_t image_name_len; u64 snap_id; char *snap_name; @@ -2563,15 +2562,15 @@ static char *rbd_dev_image_name(struct rbd_device *rbd_dev) rbd_assert(!rbd_dev->spec->image_name); - image_id_size = sizeof (__le32) + rbd_dev->spec->image_id_len; + len = strlen(rbd_dev->spec->image_id); + image_id_size = sizeof (__le32) + len; image_id = kmalloc(image_id_size, GFP_KERNEL); if (!image_id) return NULL; p = image_id; end = (char *) image_id + image_id_size; - ceph_encode_string(&p, end, rbd_dev->spec->image_id, - (u32) rbd_dev->spec->image_id_len); + ceph_encode_string(&p, end, rbd_dev->spec->image_id, (u32) len); size = sizeof (__le32) + RBD_IMAGE_NAME_LEN_MAX;