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-all
mailing list