From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Np0Wn-0006nG-NF for qemu-devel@nongnu.org; Tue, 09 Mar 2010 09:35:21 -0500 Received: from [199.232.76.173] (port=44126 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Np0Wn-0006mN-4v for qemu-devel@nongnu.org; Tue, 09 Mar 2010 09:35:21 -0500 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1Np0N3-0006uB-2o for qemu-devel@nongnu.org; Tue, 09 Mar 2010 09:25:18 -0500 Received: from qw-out-1920.google.com ([74.125.92.144]:41631) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Np0N2-0006u5-Q1 for qemu-devel@nongnu.org; Tue, 09 Mar 2010 09:25:16 -0500 Received: by qw-out-1920.google.com with SMTP id 5so1729776qwf.4 for ; Tue, 09 Mar 2010 06:25:16 -0800 (PST) Message-ID: <4B965A49.7000800@codemonkey.ws> Date: Tue, 09 Mar 2010 08:25:13 -0600 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH 1/5] block: Emit BLOCK_IO_ERROR before vm_stop() call References: <1267110422-25873-1-git-send-email-lcapitulino@redhat.com> <1267110422-25873-2-git-send-email-lcapitulino@redhat.com> In-Reply-To: <1267110422-25873-2-git-send-email-lcapitulino@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Luiz Capitulino Cc: qemu-devel@nongnu.org On 02/25/2010 09:06 AM, Luiz Capitulino wrote: > The next commit will move the STOP event into do_vm_stop(), to > have the expected event sequence we need to emit the I/O error > event before calling vm_stop(). > > The expected sequence is: > > { "event": "BLOCK_IO_ERROR" [...] } > { "event": "STOP" } > > Signed-off-by: Luiz Capitulino > Applied all. Thanks. Regards, Anthony Liguori > --- > hw/ide/core.c | 2 +- > hw/scsi-disk.c | 2 +- > hw/virtio-blk.c | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/hw/ide/core.c b/hw/ide/core.c > index 2e0971d..67480bb 100644 > --- a/hw/ide/core.c > +++ b/hw/ide/core.c > @@ -491,8 +491,8 @@ static int ide_handle_rw_error(IDEState *s, int error, int op) > || action == BLOCK_ERR_STOP_ANY) { > s->bus->bmdma->unit = s->unit; > s->bus->bmdma->status |= op; > - vm_stop(0); > bdrv_mon_event(s->bs, BDRV_ACTION_STOP, is_read); > + vm_stop(0); > } else { > if (op& BM_STATUS_DMA_RETRY) { > dma_buf_commit(s, 0); > diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c > index b2f61fe..7bb9c6c 100644 > --- a/hw/scsi-disk.c > +++ b/hw/scsi-disk.c > @@ -190,8 +190,8 @@ static int scsi_handle_write_error(SCSIDiskReq *r, int error) > if ((error == ENOSPC&& action == BLOCK_ERR_STOP_ENOSPC) > || action == BLOCK_ERR_STOP_ANY) { > r->status |= SCSI_REQ_STATUS_RETRY; > - vm_stop(0); > bdrv_mon_event(s->bs, BDRV_ACTION_STOP, 0); > + vm_stop(0); > } else { > scsi_command_complete(r, CHECK_CONDITION, > HARDWARE_ERROR); > diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c > index b80402d..8939bb2 100644 > --- a/hw/virtio-blk.c > +++ b/hw/virtio-blk.c > @@ -72,8 +72,8 @@ static int virtio_blk_handle_rw_error(VirtIOBlockReq *req, int error, > || action == BLOCK_ERR_STOP_ANY) { > req->next = s->rq; > s->rq = req; > - vm_stop(0); > bdrv_mon_event(req->dev->bs, BDRV_ACTION_STOP, is_read); > + vm_stop(0); > } else { > virtio_blk_req_complete(req, VIRTIO_BLK_S_IOERR); > bdrv_mon_event(req->dev->bs, BDRV_ACTION_REPORT, is_read); >