From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:60313) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TCEiF-0005Dh-Nb for qemu-devel@nongnu.org; Thu, 13 Sep 2012 15:04:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TCEiE-0003S4-JV for qemu-devel@nongnu.org; Thu, 13 Sep 2012 15:04:31 -0400 Received: from mx1.redhat.com ([209.132.183.28]:18365) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TCEiE-0003Rw-B7 for qemu-devel@nongnu.org; Thu, 13 Sep 2012 15:04:30 -0400 Message-ID: <50522E32.4030406@redhat.com> Date: Thu, 13 Sep 2012 15:04:18 -0400 From: Jeff Cody MIME-Version: 1.0 References: <01df3140216ac0398bfb3a295c553c42cdf31e5b.1347548248.git.jcody@redhat.com> <5052060A.5010304@redhat.com> <50521531.6010308@redhat.com> <50522C73.5030100@redhat.com> In-Reply-To: <50522C73.5030100@redhat.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 06/16] block: do not parse BDRV_O_CACHE_WB in raw block drivers Reply-To: jcody@redhat.com List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: kwolf@redhat.com, supriyak@linux.vnet.ibm.com, eblake@redhat.com, qemu-devel@nongnu.org, stefanha@gmail.com On 09/13/2012 02:56 PM, Paolo Bonzini wrote: > Il 13/09/2012 19:17, Jeff Cody ha scritto: >>>> >>>> Why does this matter? If raw-posix was opened directly (i.e. without >>>> the bs->file indirection) this would cause a writethrough file to be >>>> incorrectly opened as writeback. >>>> >>>> Paolo >>>> >> The problem this patch was trying to work around is that >> bdrv_open_common() forces BDRV_O_CACHE_WB (commit e1e9b0ac), but that >> setting is not preserved in bs->open_flags, so it is lost on a reopen. > > Perhaps we _should_ preserve that in bs->open_flags, while still using > the initial value of BDRV_O_CACHE_WB to initialize bs->enable_write_cache. That would work. Part of the problem is that BDRV_O_CACHE_WB seems overloaded; maybe bdrv_parse_cache_flags() should set a new flag, called BDRV_O_CACHE_WCE, which can be used in lieu of enable_write_cache (similar to getting rid of keep_read_only in favor of BDRV_O_ALLOW_RDWR). And then bdrv_parse_cache_flags() would just not set BDRV_O_CACHE_WB, which can then be used exclusively by the lower layers for their parsing (and bdrv_open_common would just set bs->open_flags to always have BDRV_O_CACHE_WB). Then patch 2/16 would change to having bdrv_set_enable_write_cache() toggle BDRV_O_CACHE_WCE. > >> Is there a scenario currently that has raw-posix opened directly as a >> writethrough file, or were you more concerned with future use? > > Not for raw-posix, but IIRC some other protocol is opened directly > without a format on top. rbd perhaps? I'm concerned of having to work > around what seems like a bug elsewhere, in multiple protocols. > > Paolo >