From mboxrd@z Thu Jan 1 00:00:00 1970 From: Karsten Hopp Subject: Re: Patch to support LUKS UUIDs in libblkid Date: Wed, 13 Jun 2007 13:00:34 +0200 Message-ID: <466FCE52.4000605@redhat.com> References: <4665479E.2060707@redhat.com> <20070608153600.GA9726@thunk.org> <466D373C.6000502@redhat.com> <20070612234004.GA12189@thunk.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------090800060007010105020007" Cc: linux-ext4@vger.kernel.org To: Theodore Tso Return-path: Received: from mx1.redhat.com ([66.187.233.31]:60568 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755442AbXFMLAg (ORCPT ); Wed, 13 Jun 2007 07:00:36 -0400 In-Reply-To: <20070612234004.GA12189@thunk.org> Sender: linux-ext4-owner@vger.kernel.org List-Id: linux-ext4.vger.kernel.org This is a multi-part message in MIME format. --------------090800060007010105020007 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Theodore Tso schrieb: > On Mon, Jun 11, 2007 at 01:51:24PM +0200, Karsten Hopp wrote: >> +static int probe_luks(struct blkid_probe *probe, >> + struct blkid_magic *id __BLKID_ATTR((unused)), >> + unsigned char *buf) >> +{ >> + unsigned char *p_buf = buf; >> + unsigned char uuid[40]; >> + /* 168 is the offset to the 40 character uuid: >> + * http://luks.endorphin.org/LUKS-on-disk-format.pdf */ >> + p_buf += 168; >> + strncpy(uuid, p_buf, 40); > > Why bother with p_buf? It would actually be shorter and sweeter to > do: > > strncpy(uuid, buf+168, 40); > > And remove the lines dealing with p_buf above. > >> + { "crypt_LUKS",0, 0, 6, "LUKS\xba\xbe", probe_luks }, > > Any particular reason to use "crypt_LUKS" instead of just "LUKS"? In > your documentation you generally just refer to it as LUKS. > > - Ted I've used 'luks' in my first patch, but changed it to 'crypt_LUKS' when Karel Zak pointed out that libvolume_id from udev already uses 'crypt_LUKS' for this. My first patch also did some other (unnecessary) stuff with p_buf and I just didn't bother to remove it. I'll attach a new patch without p_buf. Karsten -- Karsten Hopp | Mail: karsten@redhat.de Red Hat Deutschland | Tel: +49-711-96437-0 Hauptstaetterstr.58 | Fax: +49-711-613590 D-70178 Stuttgart | http://www.redhat.de --------------090800060007010105020007 Content-Type: text/x-patch; name="e2fsprogs-1.39-luks.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="e2fsprogs-1.39-luks.patch" e2fsprogs-1.39-luks.patch Problem: libblkid doesn't detect/report UUIDs of cryptsetup-luks partitio ns Solution: Add probe for luks UUID Signed-off-by: Karsten Hopp --- e2fsprogs-1.39/lib/blkid/ChangeLog.luksuuid 2007-06-11 13:40:14.000000000 +0200 +++ e2fsprogs-1.39/lib/blkid/ChangeLog 2007-06-11 13:40:14.000000000 +0200 @@ -0,0 +1,4 @@ +2007-05-22 Karsten Hopp + + * probe.c (probe_luks): Add support for cryptsetup-luks partitions + --- e2fsprogs-1.39/lib/blkid/probe.c.luksuuid 2007-06-11 13:40:14.000000000 +0200 +++ e2fsprogs-1.39/lib/blkid/probe.c 2007-06-13 12:50:27.000000000 +0200 @@ -468,6 +468,18 @@ static int probe_jfs(struct blkid_probe return 0; } +static int probe_luks(struct blkid_probe *probe, + struct blkid_magic *id __BLKID_ATTR((unused)), + unsigned char *buf) +{ + unsigned char uuid[40]; + /* 168 is the offset to the 40 character uuid: + * http://luks.endorphin.org/LUKS-on-disk-format.pdf */ + strncpy(uuid, buf+168, 40); + blkid_set_tag(probe->dev, "UUID", uuid, sizeof(uuid)); + return 0; +} + static int probe_romfs(struct blkid_probe *probe, struct blkid_magic *id __BLKID_ATTR((unused)), unsigned char *buf) @@ -775,6 +787,7 @@ static struct blkid_magic type_array[] = { "ocfs2", 2, 0, 6, "OCFSV2", probe_ocfs2 }, { "ocfs2", 4, 0, 6, "OCFSV2", probe_ocfs2 }, { "ocfs2", 8, 0, 6, "OCFSV2", probe_ocfs2 }, + { "crypt_LUKS",0, 0, 6, "LUKS\xba\xbe", probe_luks }, { NULL, 0, 0, 0, NULL, NULL } }; --------------090800060007010105020007--