From aea26bc05a0cf7098e213f7c0842e8182a5c4bab Mon Sep 17 00:00:00 2001 From: "Andrey V. Elsukov" Date: Fri, 28 Oct 2011 11:45:24 +0000 Subject: [PATCH] Our geom withering function could take some time before geom with its providers and consumers will be destroyed. Before take some actions with a geom, check that it is not destroyed at the moment. Tested by: nwhitehorn MFC after: 1 week --- sys/geom/part/g_part.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/geom/part/g_part.c b/sys/geom/part/g_part.c index f24e7b54bdaa..a192dedcf023 100644 --- a/sys/geom/part/g_part.c +++ b/sys/geom/part/g_part.c @@ -451,6 +451,10 @@ g_part_parm_geom(struct gctl_req *req, const char *name, struct g_geom **v) gctl_error(req, "%d %s '%s'", EINVAL, name, gname); return (EINVAL); } + if ((gp->flags & G_GEOM_WITHER) != 0) { + gctl_error(req, "%d %s", ENXIO, gname); + return (ENXIO); + } *v = gp; return (0); }