svn commit: r269407 - in head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys

Steven Hartland smh at freebsd.org
Mon Oct 20 23:43:17 UTC 2014


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


More information about the svn-src-head mailing list