On 20/10/2014 23:54, Andriy Gapon wrote:
On 02/08/2014 02:16, Steven Hartland wrote:
Author: smh
Date: Fri Aug  1 23:16:48 2014
New Revision: 269407
URL: http://svnweb.freebsd.org/changeset/base/269407

Log:
   Don't return ZIO_PIPELINE_CONTINUE from vdev_op_io_start methods
This prevents recursion of vdev_queue_io_done as per r265321 but
   using a different method as recommended on the openzfs list.
We now use zio_interrupt(zio) and return ZIO_PIPELINE_STOP instead
   of returning ZIO_PIPELINE_CONTINUE from vdev_*_io_start methods.
zio_vdev_io_start now ASSERTS the that vdev_op_io_start returns
   ZIO_PIPELINE_STOP to ensure future changes don't reintroduce
   ZIO_PIPELINE_CONTINUE returns.

Steve,

it seems that the issue is applicable to OpenZFS in general, but unfortunately,
as far as I can see, it's been applied only to FreeBSD.

Now, I see the following bug report and a proposed fix:
https://www.illumos.org/projects/illumos-gate//issues/5244
https://reviews.csiden.org/r/119/

I am not 100% sure, but it seems that those upstream changes could fix the
problem that you've found.

What do you think?
Yep very similar change overall.

The only real difference is they changed the vdev_op_io_start call to a void and return stop direct from zio_vdev_io_start.

The result should be identical and it will be easy to merge the upstream change when it gets committed.

Shame that wasn't suggested when I posted my suggested patch ;-)

    Regards
    Steve
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to