path: root/release
diff options
authorAlan Somers <asomers@FreeBSD.org>2017-05-11 16:26:56 +0000
committerAlan Somers <asomers@FreeBSD.org>2017-05-11 16:26:56 +0000
commit7ac72c256fe486ebf36db886ad2d9a47a0fb6388 (patch)
tree7e80518ec02c968f14548142eb3a40a47304d909 /release
parent855fe445b355a4de3086fb3ec04f7d4d227ba619 (diff)
vdev_geom may associate multiple vdevs per g_consumer
vdev_geom.c currently uses the g_consumer's private field to point to a vdev_t. That way, a GEOM event can cause a change to a ZFS vdev. For example, when you remove a disk, the vdev's status will change to REMOVED. However, vdev_geom will sometimes attach multiple vdevs to the same GEOM consumer. If this happens, then geom events will only be propagated to one of the vdevs. Fix this by storing a linked list of vdevs in g_consumer's private field. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c * g_consumer.private now stores a linked list of vdev pointers associated with the consumer instead of just a single vdev pointer. * Change vdev_geom_set_physpath's signature to more closely match vdev_geom_set_rotation_rate * Don't bother calling g_access in vdev_geom_set_physpath. It's guaranteed that we've already accessed the consumer by the time we get here. * Don't call vdev_geom_set_physpath in vdev_geom_attach. Instead, call it in vdev_geom_open, after we know that the open has succeeded. PR: 218634 Reviewed by: gibbs MFC after: 1 week Sponsored by: Spectra Logic Corp Differential Revision: https://reviews.freebsd.org/D10391
Notes: svn path=/head/; revision=318189
Diffstat (limited to 'release')
0 files changed, 0 insertions, 0 deletions