summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2016-11-12 23:38:04 +0000
committermav <mav@FreeBSD.org>2016-11-12 23:38:04 +0000
commit23b24d7851fedef579b27b1018e8d102bbd75263 (patch)
treea8dc112e9d29e418d32597bbaabbb8048d638af9 /contrib/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp
parente2eba905b0e2276576231d56b62745c1248c0fdc (diff)
downloadFreeBSD-src-23b24d7851fedef579b27b1018e8d102bbd75263.zip
FreeBSD-src-23b24d7851fedef579b27b1018e8d102bbd75263.tar.gz
MFC r308051: Matching GUIDs, handle possible race on vdev detach.
In case of vdev detach, causing top level mirror vdev destruction, leaf vdev changes its GUID to one of the destroyed mirror, that creates race condition when GUID in vdev label may not match one in the pool config. This change replicates logic nuance of vdev_validate() by adding special exception, matching the vdev GUID against the top level vdev GUID. Since this exception is not completely reliable (may give false positives if we fail to erase label on detached vdev), use it only as last resort. Quick way to reproduce this scenario now is detach vdev from a pool with enabled autoextend. During vdev detach autoextend logic tries to reopen remaining vdev, that always fails now since in-memory configuration is already updated, while on-disk labels are not yet.
Diffstat (limited to 'contrib/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud