summaryrefslogtreecommitdiffstats
path: root/sys/geom/part
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2009-02-20 04:10:31 +0000
committermarcel <marcel@FreeBSD.org>2009-02-20 04:10:31 +0000
commit06849d431c7d471f1488eb982edef98712a3f262 (patch)
tree49a75cc7b4d8b694a7e11f3a4dcf5e16286d00e2 /sys/geom/part
parentaff17f39c1b316f8858f5fe7f803430b126dc475 (diff)
downloadFreeBSD-src-06849d431c7d471f1488eb982edef98712a3f262.zip
FreeBSD-src-06849d431c7d471f1488eb982edef98712a3f262.tar.gz
Fix an infinite loop created when the last logical partition is
removed.
Diffstat (limited to 'sys/geom/part')
-rw-r--r--sys/geom/part/g_part_ebr.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/geom/part/g_part_ebr.c b/sys/geom/part/g_part_ebr.c
index 0e65e6a..44580b2 100644
--- a/sys/geom/part/g_part_ebr.c
+++ b/sys/geom/part/g_part_ebr.c
@@ -561,9 +561,9 @@ g_part_ebr_write(struct g_part_table *basetable, struct g_consumer *cp)
le32enc(p + 8, entry->ent.dp_start);
le32enc(p + 12, entry->ent.dp_size);
- do {
- next = LIST_NEXT(baseentry, gpe_entry);
- } while (next != NULL && next->gpe_deleted);
+ next = LIST_NEXT(baseentry, gpe_entry);
+ while (next != NULL && next->gpe_deleted)
+ next = LIST_NEXT(next, gpe_entry);
p += DOSPARTSIZE;
if (next != NULL)
OpenPOWER on IntegriCloud