[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] gluster: Abort on AIO completion failure
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH] gluster: Abort on AIO completion failure |
Date: |
Tue, 27 Aug 2013 08:58:05 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130805 Thunderbird/17.0.8 |
Il 27/08/2013 07:53, Bharata B Rao ha scritto:
> Currently if gluster AIO callback thread fails to notify the QEMU thread about
> AIO completion, we try graceful recovery by marking the disk drive as
> inaccessible. This error recovery code is race-prone as found by Asias and
> Stefan. However as found out by Paolo, this kind of error is impossible and
> hence simplify the code that handles this error recovery.
>
> Signed-off-by: Bharata B Rao <address@hidden>
> ---
> block/gluster.c | 15 ++-------------
> 1 file changed, 2 insertions(+), 13 deletions(-)
>
> diff --git a/block/gluster.c b/block/gluster.c
> index 46f36f8..942154a 100644
> --- a/block/gluster.c
> +++ b/block/gluster.c
> @@ -427,20 +427,9 @@ static void gluster_finish_aiocb(struct glfs_fd *fd,
> ssize_t ret, void *arg)
> /*
> * Gluster AIO callback thread failed to notify the waiting
> * QEMU thread about IO completion.
> - *
> - * Complete this IO request and make the disk inaccessible for
> - * subsequent reads and writes.
> */
> - error_report("Gluster failed to notify QEMU about IO completion");
> -
> - qemu_mutex_lock_iothread(); /* We are in gluster thread context */
> - acb->common.cb(acb->common.opaque, -EIO);
> - qemu_aio_release(acb);
> - close(s->fds[GLUSTER_FD_READ]);
> - close(s->fds[GLUSTER_FD_WRITE]);
> - qemu_aio_set_fd_handler(s->fds[GLUSTER_FD_READ], NULL, NULL, NULL);
> - bs->drv = NULL; /* Make the disk inaccessible */
> - qemu_mutex_unlock_iothread();
> + error_report("Gluster AIO completion failed");
Still, considering everyone can be wrong, adding the errno here is
probably not a bad idea. :)
Paolo
> + abort();
> }
> }
>
>