Re: [PATCH 4/6] virtio-blk: implement ->make_request
From: Stefan Hajnoczi
Date: Thu Dec 22 2011 - 07:20:38 EST
On Wed, Dec 21, 2011 at 1:00 AM, Minchan Kim <minchan@xxxxxxxxxx> wrote:
> +static void virtblk_add_buf_wait(struct virtio_blk *vblk,
> + struct virtblk_req *vbr, unsigned long out, unsigned long in)
> +{
> + DEFINE_WAIT(wait);
> + bool retry, notify;
> +
> + for (;;) {
> + prepare_to_wait(&vblk->queue_wait, &wait,
> + TASK_UNINTERRUPTIBLE);
> +
> + spin_lock_irq(&vblk->lock);
> + if (virtqueue_add_buf(vblk->vq, vbr->sg,
> + out, in, vbr) < 0) {
> + retry = true;
> + } else {
> + retry = false;
> + }
> + notify = virtqueue_kick_prepare(vblk->vq);
> + spin_unlock_irq(&vblk->lock);
> +
> + if (notify)
virtblk_make_request() checks that the queue is not plugged. Do we
need to do that here too?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/