From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:41932) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QqmWr-0001tc-Ew for qemu-devel@nongnu.org; Tue, 09 Aug 2011 09:39:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QqmWp-0001VJ-TJ for qemu-devel@nongnu.org; Tue, 09 Aug 2011 09:39:33 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48143) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QqmWp-0001TF-Bx for qemu-devel@nongnu.org; Tue, 09 Aug 2011 09:39:31 -0400 From: Markus Armbruster 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> Date: Tue, 09 Aug 2011 14:36:07 +0200 In-Reply-To: <4E4123A0.3070408@redhat.com> (Kevin Wolf's message of "Tue, 09 Aug 2011 14:10:08 +0200") Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii 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: Kevin Wolf 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 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. * 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.