Date: Wed, 25 Oct 2006 14:06:40 -0400 From: Joe Marcus Clarke <marcus@FreeBSD.org> To: Jean-Yves Lefort <jylefort@FreeBSD.org> Cc: FreeBSD GNOME Users <gnome@FreeBSD.org> Subject: Re: Patch to add more GEOM support to hal Message-ID: <453FA7B0.5030105@FreeBSD.org> In-Reply-To: <20061025143425.0a1f6c64.jylefort@FreeBSD.org> References: <1161699824.1029.6.camel@shumai.marcuscom.com> <20061025143425.0a1f6c64.jylefort@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Jean-Yves Lefort wrote: > On Tue, 24 Oct 2006 10:23:44 -0400 > Joe Marcus Clarke <marcus@FreeBSD.org> wrote: > >> If you currently use a lot of different GEOM classes, and have noticed >> some strange hal-related behavior in GNOME when it comes to mounting >> disks, or seeing icons for RAID members on the desktop, try the >> following patch for sysutils/hal: >> >> http://www.marcuscom.com/downloads/patch-geom >> >> This patch removes libdisk usage from hal, and replaces it with pure >> GEOM configuration parsing. I'm interested in getting all feedback. >> The idea is to fix any GEOM-related volume problems without introducing >> anything new. So if something feels worse after this patch, definitely >> let me know. > > - What are these GEOM problems? Virtual GEOM classes like LABEL, MIRROR, GELI, etc. are not handled correctly. libdisk doesn't understand these. Consequently, people see mirror elements as mountable volumes on the desktop (for example). However, these volumes cannot be mounted. > > - Memory leak: > > fields = g_strsplit(lines[i], " ", 0); > - if (g_strv_length(fields) >= 3 && ! strcmp(fields[1], "DISK")) > + if (g_strv_length(fields) < 3) > + continue; Thanks, I'll fix that. > > - Don't forget to remove -ldisk from Makefile.am I'll fix that as well. The patch is not complete. I still have style issues. I just wanted to get it tested in more environments. > > - Why these explicit conversions? > > + sibling_geom = g_hash_table_lookup(hf_storage_geom_hash, > + (gconstpointer) sibling->data); > ^^^^^^^^^^^^^^^ > > + geom_obj->mediasize = (guint64) strtoumax(fields[3], (char **) NULL, 10); > ^^^^^^^^^ ^^^^^^^^^ > > (and so on) Just being pedantic. They are not needed. I'll take care of them in my style sweep. Joe - -- Joe Marcus Clarke FreeBSD GNOME Team :: gnome@FreeBSD.org FreeNode / #freebsd-gnome http://www.FreeBSD.org/gnome -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFFP6evb2iPiv4Uz4cRAkXOAJ0VcaSwPqRcOpUcwadOvqYNwZcoPgCfSvIN ueFD2I1y3lYt4mIhOsRQScI= =KfdN -----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?453FA7B0.5030105>