summaryrefslogtreecommitdiffstats
path: root/sys/geom/raid/md_ddf.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/geom/raid/md_ddf.c')
-rw-r--r--sys/geom/raid/md_ddf.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/geom/raid/md_ddf.c b/sys/geom/raid/md_ddf.c
index 63d767d..eed048d 100644
--- a/sys/geom/raid/md_ddf.c
+++ b/sys/geom/raid/md_ddf.c
@@ -2120,13 +2120,10 @@ g_raid_md_taste_ddf(struct g_raid_md_object *md, struct g_class *mp,
pp = cp->provider;
/* Read metadata from device. */
- if (g_access(cp, 1, 0, 0) != 0)
- return (G_RAID_MD_TASTE_FAIL);
g_topology_unlock();
bzero(&meta, sizeof(meta));
error = ddf_meta_read(cp, &meta);
g_topology_lock();
- g_access(cp, -1, 0, 0);
if (error != 0)
return (G_RAID_MD_TASTE_FAIL);
be = meta.bigendian;
@@ -2164,6 +2161,9 @@ g_raid_md_taste_ddf(struct g_raid_md_object *md, struct g_class *mp,
geom = sc->sc_geom;
}
+ /* There is no return after this point, so we close passed consumer. */
+ g_access(cp, -1, 0, 0);
+
rcp = g_new_consumer(geom);
rcp->flags |= G_CF_DIRECT_RECEIVE;
g_attach(rcp, pp);
OpenPOWER on IntegriCloud