[developer] Re: [openzfs/openzfs] 8857 zio_remove_child() panic due to already destroyed parent zio (#505)

2017-12-16 Thread youzhongyang
Thanks for the analysis and the fix. I guess highbit64() is not cheap, so likely the fix can be simplified. How about this: static boolean_t zio_wait_for_children(zio_t *zio, uint32_t children_bits, enum zio_wait_type wait) { boolean_t waiting = B_FALSE; mutex_enter(&zio

[developer] [openzfs/openzfs] Merge remote-tracking branch 'illumos/master' into illumos-sync (#506)

2017-12-16 Thread zettabot
You can view, comment on, or merge this pull request online at: https://github.com/openzfs/openzfs/pull/506 -- Commit Summary -- * 8814 nxge: variable 'ether_class' set but not used * 8838 libxcurses: variable 'code' set but not used * 8850 libresolv2: variable 'tvp' set but not used

[developer] [openzfs/openzfs] 8857 zio_remove_child() panic due to already destroyed parent zio (#505)

2017-12-16 Thread George Wilson
PROBLEM It's possible for a parent zio to complete even though it has children which have not completed. This can result in the following panic: > $C ff01809128c0 vpanic() ff01809128e0 mutex_panic+0x58(fb94c904, ff597dde7f80) ff0180912950 mutex_vector_enter+0x347(ff597

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2017-12-16 Thread Igor K
ikozhukhov commented on this pull request. > @@ -6653,6 +6566,9 @@ spa_sync(spa_t *spa, uint64_t txg) ddt_sync(spa, txg); dsl_scan_sync(dp, tx); + if (spa->spa_vdev_removal != NULL) + svr_sync(spa, tx); + while