Re: [PATCH, RFC] ubd: remove use of blk_rq_map_sg

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am Montag, 15. Oktober 2018, 22:55:29 CEST schrieb Christoph Hellwig:
> On Mon, Oct 15, 2018 at 10:42:47PM +0200, Richard Weinberger wrote:
> > > Sadly not. I'm checking now what exactly is broken.
> > 
> > I take this back. Christoph's fixup makes reading work.
> > The previous version corrupted my test block device in interesting ways
> > and confused all tests.
> > But the removal of blk_rq_map_sg() still has issues.
> > Now the device blocks endless upon flush.
> 
> I suspect we still need to special case flush.  Updated patch below
> including your other suggestion:

While playing further with the patch I managed to hit
BUG_ON(blk_queued_rq(rq)) in blk_mq_requeue_request().

UML requeues the request in ubd_queue_one_vec() if it was not able
to submit the request to the host io-thread.
The fd can return -EAGAIN, then UML has to try later.

Isn't this allowed in that context?

drivers/block/xen-blkfront.c seem to faced the same problem, since
it does a list_del_init(&req->queuelist) right before calling
blk_mq_requeue_request() o_O.

Thanks,
//richard







[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux