From patchwork Thu Nov 1 15:26:12 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 1685341 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 EB1D7DFE75 for ; Thu, 1 Nov 2012 15:26:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761947Ab2KAP0Q (ORCPT ); Thu, 1 Nov 2012 11:26:16 -0400 Received: from mail-ie0-f174.google.com ([209.85.223.174]:52102 "EHLO mail-ie0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1761049Ab2KAP0P (ORCPT ); Thu, 1 Nov 2012 11:26:15 -0400 Received: by mail-ie0-f174.google.com with SMTP id k13so3724548iea.19 for ; Thu, 01 Nov 2012 08:26:15 -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=UGgMLUQOSSLQLMCmUnYdQyEbmEBMTjBU6ZGaIFlNmdo=; b=WpMqL7eYeCn8zkzWc3ivCDiOABWiAz5CyEkL15vBeVPc7LVUPwu+ZOcgV/eSlKqfMW e/GZ9Zuchdg8FAC1EJ/HcXE6P13r60rKNDIcP93Mwv3gCovEuQ7bbGKDPC/H+nHuNXWU gbuW1nvzr883Kd51DwFFj576BzvTggOcTixmJP43oRrvovgi7Iq785zWMjiCD611ePXO x5qrK9MXZ6hkimThMI/03P9byZO492kCiFUyW8+Qs50VOWsRd/3YBlgLIupOJVtXNuww RycA6Sdq7PzM06FXWNmVqKeIUO9inSdArqnUzr0UTSQ89Z3rpKMx4FoV8kJrE5KZh9iF /4GA== Received: by 10.50.179.103 with SMTP id df7mr1699884igc.4.1351783575356; Thu, 01 Nov 2012 08:26:15 -0700 (PDT) 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 az4sm6013866igb.2.2012.11.01.08.26.13 (version=SSLv3 cipher=OTHER); Thu, 01 Nov 2012 08:26:14 -0700 (PDT) Message-ID: <50929494.7060009@inktank.com> Date: Thu, 01 Nov 2012 10:26:12 -0500 From: Alex Elder User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121028 Thunderbird/16.0.2 MIME-Version: 1.0 To: ceph-devel@vger.kernel.org Subject: [PATCH 1/4] rbd: define and use rbd_warn() References: <50929419.6020302@inktank.com> In-Reply-To: <50929419.6020302@inktank.com> X-Gm-Message-State: ALoCoQkz+UPvkz8zUSNLV4jMfMRRChauHsTYV6eh1xijFzkG2G1W3L5qmBOHx5E7MrIXGC0QMKbo Sender: ceph-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: ceph-devel@vger.kernel.org Define a new function rbd_warn() that produces a boilerplate warning message, identifying in the resulting message the affected rbd device in the best way available. Use it in a few places that now use pr_warning(). Signed-off-by: Alex Elder --- drivers/block/rbd.c | 43 +++++++++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 10 deletions(-) } @@ -1769,15 +1796,13 @@ rbd_dev_v1_header_read(struct rbd_device *rbd_dev, u64 *version) goto out_err; if (WARN_ON((size_t) ret < size)) { ret = -ENXIO; - pr_warning("short header read for image %s" - " (want %zd got %d)\n", - rbd_dev->spec->image_name, size, ret); + rbd_warn(rbd_dev, "short header read (want %zd got %d)", + size, ret); goto out_err; } if (!rbd_dev_ondisk_valid(ondisk)) { ret = -ENXIO; - pr_warning("invalid header for image %s\n", - rbd_dev->spec->image_name); + rbd_warn(rbd_dev, "invalid header"); goto out_err; } @@ -2632,9 +2657,7 @@ static int rbd_dev_probe_update_spec(struct rbd_device *rbd_dev) if (name) rbd_dev->spec->image_name = (char *) name; 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); + rbd_warn(rbd_dev, "unable to get image name"); /* Look up the snapshot name. */ diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index 503ee7f..85a5164 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c @@ -293,6 +293,33 @@ static struct device rbd_root_dev = { .release = rbd_root_dev_release, }; +static __printf(2, 3) +void rbd_warn(struct rbd_device *rbd_dev, const char *fmt, ...) +{ + struct va_format vaf; + va_list args; + + va_start(args, fmt); + vaf.fmt = fmt; + vaf.va = &args; + + if (!rbd_dev) + printk(KERN_WARNING "%s: %pV\n", RBD_DRV_NAME, &vaf); + else if (rbd_dev->disk) + printk(KERN_WARNING "%s: %s: %pV\n", + RBD_DRV_NAME, rbd_dev->disk->disk_name, &vaf); + else if (rbd_dev->spec && rbd_dev->spec->image_name) + printk(KERN_WARNING "%s: image %s: %pV\n", + RBD_DRV_NAME, rbd_dev->spec->image_name, &vaf); + else if (rbd_dev->spec && rbd_dev->spec->image_id) + printk(KERN_WARNING "%s: id %s: %pV\n", + RBD_DRV_NAME, rbd_dev->spec->image_id, &vaf); + else /* punt */ + printk(KERN_WARNING "%s: rbd_dev %p: %pV\n", + RBD_DRV_NAME, rbd_dev, &vaf); + va_end(args); +} + #ifdef RBD_DEBUG #define rbd_assert(expr) \ if (unlikely(!(expr))) { \ @@ -1405,8 +1432,8 @@ static void rbd_watch_cb(u64 ver, u64 notify_id, u8 opcode, void *data) (unsigned int) opcode); rc = rbd_dev_refresh(rbd_dev, &hver); if (rc) - pr_warning(RBD_DRV_NAME "%d got notification but failed to " - " update snaps: %d\n", rbd_dev->major, rc); + rbd_warn(rbd_dev, "got notification but failed to " + " update snaps: %d\n", rc); rbd_req_sync_notify_ack(rbd_dev, hver, notify_id);