diff options
author | marcus <marcus@FreeBSD.org> | 2010-08-30 01:51:18 +0800 |
---|---|---|
committer | marcus <marcus@FreeBSD.org> | 2010-08-30 01:51:18 +0800 |
commit | 8a966fe7570db9616e910359329bb46d7bb24ad2 (patch) | |
tree | 6e85d813fe53a84ebd8d1eaaab11be83396656f4 /sysutils/hal | |
parent | af8e4887814f0df90c2a1ac51d28677b075a484f (diff) | |
download | freebsd-ports-gnome-8a966fe7570db9616e910359329bb46d7bb24ad2.tar.gz freebsd-ports-gnome-8a966fe7570db9616e910359329bb46d7bb24ad2.tar.zst freebsd-ports-gnome-8a966fe7570db9616e910359329bb46d7bb24ad2.zip |
Fix a bug where UFS file systems could not be properly unmounted. Part of this
was due to a logic bug introduced when I added support for "ufs/" labels.
Thanks to Andriy Gapon for ctching that.
PR: 149134
Diffstat (limited to 'sysutils/hal')
-rw-r--r-- | sysutils/hal/Makefile | 2 | ||||
-rw-r--r-- | sysutils/hal/files/patch-hald_hf-storage.c | 12 |
2 files changed, 8 insertions, 6 deletions
diff --git a/sysutils/hal/Makefile b/sysutils/hal/Makefile index 7329d92126ac..52a5324338cd 100644 --- a/sysutils/hal/Makefile +++ b/sysutils/hal/Makefile @@ -8,7 +8,7 @@ PORTNAME= hal DISTVERSION= 0.5.14 -PORTREVISION= 8 +PORTREVISION= 9 CATEGORIES= sysutils MASTER_SITES= http://hal.freedesktop.org/releases/ diff --git a/sysutils/hal/files/patch-hald_hf-storage.c b/sysutils/hal/files/patch-hald_hf-storage.c index 162079ac7086..99755c770568 100644 --- a/sysutils/hal/files/patch-hald_hf-storage.c +++ b/sysutils/hal/files/patch-hald_hf-storage.c @@ -1,5 +1,5 @@ --- hald/freebsd/hf-storage.c.orig 2009-08-24 08:42:29.000000000 -0400 -+++ hald/freebsd/hf-storage.c 2010-02-26 08:29:38.000000000 -0500 ++++ hald/freebsd/hf-storage.c 2010-08-29 12:22:03.000000000 -0400 @@ -30,6 +30,7 @@ #include <limits.h> #include <inttypes.h> @@ -20,8 +20,8 @@ + if ((! strcmp(fields[1], "LABEL") || + ! strcmp(fields[1], "BSD") || + ! strcmp(fields[1], "PART")) && -+ ! (strncmp(fields[2], "ufsid/", strlen("ufsid/")) || -+ ! strncmp(fields[2], "ufs/", strlen("ufs/")))) ++ (! strncmp(fields[2], "ufsid/", strlen("ufsid/")) || ++ ! strncmp(fields[2], "ufs/", strlen("ufs/")))) + { + g_strfreev(fields); + continue; @@ -50,12 +50,14 @@ geom_obj->type = -1; /* We use -1 here to denote a missing type. */ geom_obj->hash = hash; -@@ -589,11 +621,16 @@ hf_storage_devd_notify (const char *syst +@@ -589,11 +621,18 @@ hf_storage_devd_notify (const char *syst char *conftxt; GSList *new_disks; - if (strcmp(system, "DEVFS") || strcmp(subsystem, "CDEV") || + if (! data || strcmp(system, "DEVFS") || strcmp(subsystem, "CDEV") || ++ ! strncmp(data, "cdev=ufs/", strlen("cdev=ufs/")) || ++ ! strncmp(data, "cdev=ufsid/", strlen("cdev=ufsid/")) || (strcmp(type, "CREATE") && strcmp(type, "DESTROY"))) return FALSE; @@ -68,7 +70,7 @@ new_disks = hf_storage_parse_conftxt(conftxt); g_free(conftxt); -@@ -669,7 +706,7 @@ hf_storage_conftxt_timeout_cb (gpointer +@@ -669,7 +708,7 @@ hf_storage_conftxt_timeout_cb (gpointer if (hf_is_waiting) return TRUE; |