[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] Add qerror message if the 'change' target filen
From: |
Luiz Capitulino |
Subject: |
Re: [Qemu-devel] [PATCH] Add qerror message if the 'change' target filename can't be opened |
Date: |
Thu, 1 Apr 2010 17:55:42 -0300 |
On Thu, 01 Apr 2010 21:14:30 +0200
Kevin Wolf <address@hidden> wrote:
> Am 01.04.2010 20:22, schrieb Luiz Capitulino:
> > On Thu, 1 Apr 2010 15:15:51 -0300
> > Luiz Capitulino <address@hidden> wrote:
> >
> >> On Thu, 25 Mar 2010 09:32:58 -0500
> >> Ryan Harper <address@hidden> wrote:
> >>
> >>> Currently when using the change command to switch the file in the cd drive
> >>> the command doesn't complain if the file doesn't exit or can't be opened
> >>> and the drive keeps the existing image. This patch adds a qerror_report
> >>> call to print a message out indicating the failure. This error message
> >>> can be used to catch failures.
> >>
> >> Looks good to me, but it doesn't keep the existing image, it will silently
> >> eject it instead.
> >
> > And, thinking more about it this seems the wrong behavior to me, if it
> > fails to open the file, it should not touch the current one.
> >
> > Am I right, Kevin?
>
> Well, it's a monitor command. I guess its meaning has never been clearly
> defined, so I tend to say there is no right or wrong. From a user
> perspective, intuitively I would expect that it succeeds completely or
> maintains the old state, so yes.
Yes and I'd expect the same from a QMP perspective.
> However, I don't think it's fixable that easy. You obviously need to
> close the image before you can open it. And reopening the image in case
> of failure - well, we just had this discussion and I'm sure Juan wants
> to comment on it...
>
> It's a case that we should consider if/when we reorganize bdrv_open. The
> "bdrv_close, but without closing the fd" thing doesn't work out here
> because we need to reuse the same bs. Or maybe open a different bs first
> and then copy things over. Could actually work this way.
Yeah, I looked there and realized it wasn't easy but this solution
looks good.