qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Re: [PATCH] block: Change bdrv_eject() not to drop the imag


From: Kevin Wolf
Subject: [Qemu-devel] Re: [PATCH] block: Change bdrv_eject() not to drop the image
Date: Wed, 28 Jul 2010 12:52:55 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.11) Gecko/20100720 Fedora/3.0.6-1.fc12 Thunderbird/3.0.6

Am 27.07.2010 14:02, schrieb Markus Armbruster:
> bdrv_eject() gets called when a device model opens or closes the tray.
> 
> If the block driver implements method bdrv_eject(), that method gets
> called.  Drivers host_cdrom implements it, and it opens and closes the
> physical tray, and nothing else.  When a device model opens, then
> closes the tray, media changes only if the user actively changes the
> physical media while the tray is open.  This is matches how physical
> hardware behaves.
> 
> If the block driver doesn't implement method bdrv_eject(), we do
> something quite different: opening the tray severs the connection to
> the image by calling bdrv_close(), and closing the tray does nothing.
> When the device model opens, then closes the tray, media is gone,
> unless the user actively inserts another one while the tray is open,
> with a suitable change command in the monitor.  This isn't how
> physical hardware behaves.  Rather inconvenient when programs
> "helpfully" eject media to give you a chance to change it.  The way
> bdrv_eject() behaves here turns that chance into a must, which is not
> what these programs or their users expect.
> 
> Change the default action not to call bdrv_close().  Instead, note the
> tray status in new BlockDriverState member tray_open.  Use it in
> bdrv_is_inserted().
> 
> Arguably, the device models should keep track of tray status
> themselves.  But this is less invasive.
> 
> Signed-off-by: Markus Armbruster <address@hidden>

Thanks, applied to the block branch.

Kevin



reply via email to

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