mav 714a10a768 Skip VDEV_IO_DONE stage only for ZIO_TYPE_FREE.
Device removal code uses zio_vdev_child_io() with ZIO_TYPE_NULL parent,
that never happened before.  It confused FreeBSD-specific TRIM code,
which does not use VDEV_IO_DONE for logical ZIO_TYPE_FREE ZIOs.  As
result of that stage being skipped device removal ZIOs leaked references
and memory that supposed to be freed by VDEV_IO_DONE, making it stuck.

It is a quick patch rather then a nice fix, but hopefully we'll be able
to drop it all together when alternative TRIM implementation finally get
landed.

PR:		228750, 229007
Discussed with:	allanjude, avg, smh
Approved by:	re (delphij)
MFC after:	5 days
Sponsored by:	iXsystems, Inc.
2018-10-15 21:59:24 +00:00
..
2018-09-13 21:00:17 +00:00
2018-10-09 18:40:36 +00:00
2018-10-15 18:39:33 +00:00
2018-08-24 15:00:36 +00:00
2018-10-09 14:27:55 +00:00
2018-10-05 17:53:47 +00:00
2018-08-23 13:21:01 +00:00
2018-10-15 10:29:29 +00:00
2018-10-09 14:27:55 +00:00
2018-07-15 00:31:17 +00:00
2018-09-22 17:05:49 +00:00