geom_slice.c (e805e8f0e8f9f762bfb5bffd72380a1b101b1a8b) geom_slice.c (b1876192f015b1cf392b52b82b124265fc9683a7)
1/*-
2 * Copyright (c) 2002 Poul-Henning Kamp
3 * Copyright (c) 2002 Networks Associates Technology, Inc.
4 * All rights reserved.
5 *
6 * This software was developed for the FreeBSD Project by Poul-Henning Kamp
7 * and NAI Labs, the Security Research Division of Network Associates, Inc.
8 * under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the

--- 233 unchanged lines hidden (view full) ---

242 return (NULL);
243 }
244 *vp = gsp->softc;
245 *cpp = cp;
246 return (gp);
247}
248
249void
1/*-
2 * Copyright (c) 2002 Poul-Henning Kamp
3 * Copyright (c) 2002 Networks Associates Technology, Inc.
4 * All rights reserved.
5 *
6 * This software was developed for the FreeBSD Project by Poul-Henning Kamp
7 * and NAI Labs, the Security Research Division of Network Associates, Inc.
8 * under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the

--- 233 unchanged lines hidden (view full) ---

242 return (NULL);
243 }
244 *vp = gsp->softc;
245 *cpp = cp;
246 return (gp);
247}
248
249void
250g_slice_orphan(struct g_consumer *cp, struct thread *tp __unused)
250g_slice_orphan(struct g_consumer *cp)
251{
252 struct g_geom *gp;
253 struct g_provider *pp;
254 int error;
255
256 g_trace(G_T_TOPOLOGY, "g_slice_orphan(%p/%s)", cp, cp->provider->name);
257 g_topology_assert();
258 KASSERT(cp->provider->error != 0,
259 ("g_slice_orphan with error == 0"));
260
261 gp = cp->geom;
262 gp->flags |= G_GEOM_WITHER;
263 /* First prevent any new requests */
264 error = cp->provider->error;
265 LIST_FOREACH(pp, &gp->provider, provider)
266 g_orphan_provider(pp, error);
267
268 return;
269}
251{
252 struct g_geom *gp;
253 struct g_provider *pp;
254 int error;
255
256 g_trace(G_T_TOPOLOGY, "g_slice_orphan(%p/%s)", cp, cp->provider->name);
257 g_topology_assert();
258 KASSERT(cp->provider->error != 0,
259 ("g_slice_orphan with error == 0"));
260
261 gp = cp->geom;
262 gp->flags |= G_GEOM_WITHER;
263 /* First prevent any new requests */
264 error = cp->provider->error;
265 LIST_FOREACH(pp, &gp->provider, provider)
266 g_orphan_provider(pp, error);
267
268 return;
269}