From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:45991) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qqmcq-0007tC-I3 for qemu-devel@nongnu.org; Tue, 09 Aug 2011 09:45:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qqmcl-0004K3-Gk for qemu-devel@nongnu.org; Tue, 09 Aug 2011 09:45:44 -0400 Received: from mx1.redhat.com ([209.132.183.28]:36353) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qqmcl-00041n-9X for qemu-devel@nongnu.org; Tue, 09 Aug 2011 09:45:39 -0400 Message-ID: <4E412C43.40400@redhat.com> Date: Tue, 09 Aug 2011 14:46:59 +0200 From: Kevin Wolf MIME-Version: 1.0 References: <1311179069-27882-1-git-send-email-armbru@redhat.com> <1311179069-27882-45-git-send-email-armbru@redhat.com> <4E3A5221.3030407@redhat.com> <4E40E2A0.9050405@redhat.com> <4E4123A0.3070408@redhat.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 44/55] spitz tosa: Simplify "drive is suitable for microdrive" test List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: Peter Maydell , quintela@redhat.com, dbaryshkov@gmail.com, stefano.stabellini@eu.citrix.com, qemu-devel@nongnu.org, lcapitulino@redhat.com, amit.shah@redhat.com Am 09.08.2011 14:36, schrieb Markus Armbruster: > Kevin Wolf writes: > >> Am 09.08.2011 13:56, schrieb Markus Armbruster: >>> bdrv_is_locked() is about the frontend's media lock. To make this more >>> obvious, my PATCH 29/55 replaces it by bdrv_dev_is_medium_locked(). It >>> does *not* query the backend's lock (which may not even exist!) set by >>> bdrv_set_locked(). >> >> This sounds wrong (the behaviour, not your analysis). Do you plan to >> remove bdrv_dev_is_medium_locked() as well? It is used by IDE and >> scsi-disk (easy to replace) and in eject_device() in blockdev.c. Maybe >> the 'eject' monitor command should be handled by another callback into >> the device. > > Just two users remain after my series: > > * bdrv_info() > > It wants to show the frontend's lock state, and uses > bdrv_dev_is_medium_locked() to get it from the frontend. bdrv_info() is a nasty reason for keeping this in the block layer. > * eject_device() > > It needs to fail if the frontend has its medium locked. It uses > bdrv_dev_is_medium_locked() to get the lock state from the frontend. > Pseudo code (-f glossed over for simplicity): > > unless frontend has removable media > fail > if frontend medium is not already open > and frontend medium is locked > fail > drop the block driver > > I considered replacing this with "ask the frontend to eject", and then > let the frontend decide whether to order the backend to drop the block > driver. I decided against it, since I need > bdrv_dev_is_medium_locked() anyway for bdrv_info(). Besides, the > series is long enough already. I'm not asking to change it in this series, but in general I think it would be a good change to make. Kevin