diff options
author | HÃ¥kan Johansson <[email protected]> | 2016-10-07 22:25:35 +0200 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2016-10-07 13:25:35 -0700 |
commit | 4770aa0643a7fc62f81b2d60e4a46de4bfd1aa04 (patch) | |
tree | 4089347c77ebb43a623603b37f09aee1f9625d5b /lib/libzpool | |
parent | ccc92611b1bd0a78a72f553472a91ef1e83b06c5 (diff) |
Fix vdev_open_child() race on updating vdev_parent->vdev_nonrot
Updating vd->vdev_parent->vdev_nonrot in vdev_open_child()
is a race when vdev_open_child is called for many children
from a task queue.
vdev_open_child() is only called by vdev_open_children(), let
the latter update the parent vdev_nonrot member. The update
was already there, so done twice previously. Thus using the
same logic at the end in vdev_open_children() to update
vdev_nonrot, either we are vdev_uses_zvols() or not.
Reviewed-by: Richard Elling <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Haakan T Johansson <[email protected]>
Closes #5162
Diffstat (limited to 'lib/libzpool')
0 files changed, 0 insertions, 0 deletions