From patchwork Mon Apr 27 13:00:57 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karel Zak X-Patchwork-Id: 26501 Return-Path: X-Original-To: patchwork-incoming@bilbo.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from ozlabs.org (ozlabs.org [203.10.76.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.ozlabs.org", Issuer "CA Cert Signing Authority" (verified OK)) by bilbo.ozlabs.org (Postfix) with ESMTPS id 94CD8B7063 for ; Mon, 27 Apr 2009 23:01:13 +1000 (EST) Received: by ozlabs.org (Postfix) id 8587DDDE1F; Mon, 27 Apr 2009 23:01:13 +1000 (EST) Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 2D442DDE1B for ; Mon, 27 Apr 2009 23:01:13 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751775AbZD0NBK (ORCPT ); Mon, 27 Apr 2009 09:01:10 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753639AbZD0NBK (ORCPT ); Mon, 27 Apr 2009 09:01:10 -0400 Received: from mx2.redhat.com ([66.187.237.31]:41726 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751775AbZD0NBJ (ORCPT ); Mon, 27 Apr 2009 09:01:09 -0400 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n3RD12kC026189; Mon, 27 Apr 2009 09:01:02 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n3RD11SS026943; Mon, 27 Apr 2009 09:01:01 -0400 Received: from nb.net.home (vpn-10-185.str.redhat.com [10.32.10.185]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n3RD0x5c017323; Mon, 27 Apr 2009 09:00:59 -0400 From: Karel Zak To: linux-ext4@vger.kernel.org Cc: Eric Sandeen , Theodore Tso , Karel Zak Subject: [PATCH] blkid: use /dev/mapper/ rather than /dev/dm- Date: Mon, 27 Apr 2009 15:00:57 +0200 Message-Id: <1240837258-5440-1-git-send-email-kzak@redhat.com> X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org The libblkid (since v1.41.1) returns private device-mapper names (e.g. /dev/dm-0). It's because the probe_one() function scans /dev before /dev/mapper. brw-rw---- 1 root disk 253, 0 2009-04-27 13:41 /dev/dm-0 brw-rw---- 1 root disk 253, 0 2009-04-27 13:41 /dev/mapper/TestVolGroup-TestLogVolume Old version: # blkid -t LABEL="TEST-LABEL" -o device /dev/dm-0 Fixed version: # blkid -t LABEL="TEST-LABEL" -o device /dev/mapper/TestVolGroup-TestLogVolume Addresses-Red-Hat-Bug: #497259 Signed-off-by: Karel Zak --- lib/blkid/devname.c | 16 ++++++++++++---- 1 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/blkid/devname.c b/lib/blkid/devname.c index 8553e9f..59c0919 100644 --- a/lib/blkid/devname.c +++ b/lib/blkid/devname.c @@ -179,6 +179,15 @@ static void probe_one(blkid_cache cache, const char *ptname, if (dev && dev->bid_devno == devno) goto set_pri; + /* Try to translate private device-mapper dm- names + * to standard /dev/mapper/. + */ + if (!strncmp(ptname, "dm-", 3) && isdigit(ptname[3])) { + blkid__scan_dir("/dev/mapper", devno, 0, &devname); + if (devname) + goto get_dev; + } + /* * Take a quick look at /dev/ptname for the device number. We check * all of the likely device directories. If we don't find it, or if @@ -197,17 +206,16 @@ static void probe_one(blkid_cache cache, const char *ptname, if (stat(device, &st) == 0 && S_ISBLK(st.st_mode) && st.st_rdev == devno) { devname = blkid_strdup(device); - break; + goto get_dev; } } - /* Do a short-cut scan of /dev/mapper first */ - if (!devname) - blkid__scan_dir("/dev/mapper", devno, 0, &devname); if (!devname) { devname = blkid_devno_to_devname(devno); if (!devname) return; } + +get_dev: dev = blkid_get_dev(cache, devname, BLKID_DEV_NORMAL); free(devname);