summaryrefslogtreecommitdiffstats
path: root/sys/geom
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2009-03-30 00:33:43 +0000
committermarcel <marcel@FreeBSD.org>2009-03-30 00:33:43 +0000
commitbfa8e2dd6f0aaaf53628020b2410c56ddc574d1c (patch)
treedd4d75728279474a3bdebb03a028b856c25d2085 /sys/geom
parentca739eae4a06d758f8eae83c7b26012ff5898d3d (diff)
downloadFreeBSD-src-bfa8e2dd6f0aaaf53628020b2410c56ddc574d1c.zip
FreeBSD-src-bfa8e2dd6f0aaaf53628020b2410c56ddc574d1c.tar.gz
Sharpen the saw:
o Don't create a GPT scheme underneath another scheme when the probe doesn't allow it.
Diffstat (limited to 'sys/geom')
-rw-r--r--sys/geom/part/g_part_gpt.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/geom/part/g_part_gpt.c b/sys/geom/part/g_part_gpt.c
index db6ebdc..cfbd897 100644
--- a/sys/geom/part/g_part_gpt.c
+++ b/sys/geom/part/g_part_gpt.c
@@ -393,6 +393,10 @@ g_part_gpt_create(struct g_part_table *basetable, struct g_part_parms *gpp)
quad_t last;
size_t tblsz;
+ /* We don't nest, which means that our depth should be 0. */
+ if (basetable->gpt_depth != 0)
+ return (ENXIO);
+
table = (struct g_part_gpt_table *)basetable;
pp = gpp->gpp_provider;
tblsz = (basetable->gpt_entries * sizeof(struct gpt_ent) +
OpenPOWER on IntegriCloud