On Wed, Feb 12, 2020 at 11:23:20PM +0300, Alexey Dobriyan wrote: > Steps to reproduce: > > BLKRESETZONE zone 0 > > // force EIO > pwrite(fd, buf, 4096, 4096); > > [issue more IO including zone ioctls] > > It will start failing randomly including IO to unrelated zones because of > ->error "reuse". Trigger can be partition detection as well if test is not > run immediately which is even more entertaining. > > The fix is of course to clear ->error where necessary. > > Signed-off-by: Alexey Dobriyan (SK hynix) <adobriyan@xxxxxxxxx> > --- > > drivers/block/null_blk_main.c | 2 ++ > 1 file changed, 2 insertions(+) > > --- a/drivers/block/null_blk_main.c > +++ b/drivers/block/null_blk_main.c > @@ -605,6 +605,7 @@ static struct nullb_cmd *__alloc_cmd(struct nullb_queue *nq) > if (tag != -1U) { > cmd = &nq->cmds[tag]; > cmd->tag = tag; > + cmd->error = BLK_STS_OK; I'd place this line in null_queue_bio to match the blk-mq patch more closely. Otherwise this looks fine: Reviewed-by: Christoph Hellwig <hch@xxxxxx> Can you add your testcase to blktests?