In article <20160102160001.c978df...@cvs.netbsd.org>,
Michael van Elst <source-changes-d@NetBSD.org> wrote:
>@@ -2665,11 +2664,7 @@ raidread_component_area(dev_t dev, struc
>       bp->b_flags |= B_READ;
>       bp->b_resid = dsize;
> 
>-      bdev = bdevsw_lookup(bp->b_dev);
>-      if (bdev == NULL)
>-              return (ENXIO);
>-      (*bdev->d_strategy)(bp);
>-
>+      bdev_strategy(bp);
>       error = biowait(bp);

Don't you want instead?

+       bdev_strategy(bp);
+       if (bp->b_error)
+               return bp->b_error;

Since bdev_strategy() calls biodone() and I am pretty sure you are not
supposed to call biowait() on a biodone()'d buffer? And bdev_strategy
should be made to return an error...

christos

Reply via email to