qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 3/5] ide: Generate BLOCK_IO_ERROR QMP event


From: Christoph Hellwig
Subject: Re: [Qemu-devel] [PATCH 3/5] ide: Generate BLOCK_IO_ERROR QMP event
Date: Wed, 3 Feb 2010 09:31:07 +0100
User-agent: Mutt/1.3.28i

On Tue, Feb 02, 2010 at 07:10:11PM -0200, Luiz Capitulino wrote:
> Just call bdrv_mon_event() in the right place.
> 
> Signed-off-by: Luiz Capitulino <address@hidden>
> ---
>  hw/ide/core.c |    6 +++++-
>  1 files changed, 5 insertions(+), 1 deletions(-)
> 
> diff --git a/hw/ide/core.c b/hw/ide/core.c
> index b6643e8..603e537 100644
> --- a/hw/ide/core.c
> +++ b/hw/ide/core.c
> @@ -480,14 +480,17 @@ static int ide_handle_rw_error(IDEState *s, int error, 
> int op)
>      int is_read = (op & BM_STATUS_RETRY_READ);
>      BlockInterfaceErrorAction action = drive_get_on_error(s->bs, is_read);
>  
> -    if (action == BLOCK_ERR_IGNORE)
> +    if (action == BLOCK_ERR_IGNORE) {
> +        bdrv_mon_event(s->bs, BDRV_ACTION_IGNORE, is_read);
>          return 0;
> +    }
>  
>      if ((error == ENOSPC && action == BLOCK_ERR_STOP_ENOSPC)
>              || 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);

Why isn't the event directly sent from drive_get_on_error?  Having
to opencode this in every driver is a sure way to make sure it's
going to be broken somewhere.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]