vdev_geom.c (293708) | vdev_geom.c (294027) |
---|---|
1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE --- 146 unchanged lines hidden (view full) --- 155 * must be retired before we can detach our consumer. 156 * This is most easily achieved by acquiring the 157 * SPA ZIO configuration lock as a writer, but doing 158 * so with the GEOM topology lock held would cause 159 * a lock order reversal. Instead, rely on the SPA's 160 * async removal support to invoke a close on this 161 * vdev once it is safe to do so. 162 */ | 1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE --- 146 unchanged lines hidden (view full) --- 155 * must be retired before we can detach our consumer. 156 * This is most easily achieved by acquiring the 157 * SPA ZIO configuration lock as a writer, but doing 158 * so with the GEOM topology lock held would cause 159 * a lock order reversal. Instead, rely on the SPA's 160 * async removal support to invoke a close on this 161 * vdev once it is safe to do so. 162 */ |
163 zfs_post_remove(vd->vdev_spa, vd); | |
164 vd->vdev_remove_wanted = B_TRUE; 165 spa_async_request(vd->vdev_spa, SPA_ASYNC_REMOVE); 166} 167 168static struct g_consumer * 169vdev_geom_attach(struct g_provider *pp, vdev_t *vd) 170{ 171 struct g_geom *gp; --- 820 unchanged lines hidden --- | 163 vd->vdev_remove_wanted = B_TRUE; 164 spa_async_request(vd->vdev_spa, SPA_ASYNC_REMOVE); 165} 166 167static struct g_consumer * 168vdev_geom_attach(struct g_provider *pp, vdev_t *vd) 169{ 170 struct g_geom *gp; --- 820 unchanged lines hidden --- |