From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KOaoa-0002iF-C9 for qemu-devel@nongnu.org; Thu, 31 Jul 2008 12:15:44 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KOaoW-0002fg-CN for qemu-devel@nongnu.org; Thu, 31 Jul 2008 12:15:43 -0400 Received: from [199.232.76.173] (port=50745 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KOaoW-0002fY-7q for qemu-devel@nongnu.org; Thu, 31 Jul 2008 12:15:40 -0400 Received: from mx1.redhat.com ([66.187.233.31]:36335) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KOaoW-0004QM-C3 for qemu-devel@nongnu.org; Thu, 31 Jul 2008 12:15:40 -0400 Date: Thu, 31 Jul 2008 17:10:36 +0100 From: "Daniel P. Berrange" Subject: Re: [Qemu-devel] PATCH: Control over drive open modes for backing file Message-ID: <20080731161036.GL18548@redhat.com> References: <20080731113120.GJ23888@redhat.com> <20080731133420.GD18548@redhat.com> <200807311446.56381.paul@codesourcery.com> <20080731135512.GF18548@redhat.com> <20080731160113.GA22997@shareable.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080731160113.GA22997@shareable.org> Reply-To: "Daniel P. Berrange" , qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jamie Lokier Cc: qemu-devel@nongnu.org, Paul Brook On Thu, Jul 31, 2008 at 05:01:13PM +0100, Jamie Lokier wrote: > Blue Swirl wrote: > > On 7/31/08, Daniel P. Berrange wrote: > > > On Thu, Jul 31, 2008 at 02:46:55PM +0100, Paul Brook wrote: > > > > > +#define BDRV_O_RDONLY 0x0001 /* Force read-only */ > > > > > +#define BDRV_O_WRONLY 0x0002 /* Force writeable, no fallback */ > > > > > +#define BDRV_O_RDWR 0x0003 /* Try writeable, fallback to read-only > > > > > */ > > > > > > > > This is IMHO really misleading. Normal O_* are not bitflags. The code uses > > > > these as bitflags sometimes, which means your descriptions are contradictory. > > > > > > > > > One alternative approach I considered would be to not have an explicit > > > flag for writable, and instead have a flag to explicitly indicate that > > > fallback to read-only shouldn't be attempted. > > > > > > > > > #define BDRV_O_RDONLY 0x0001 > > > > > > #define BDRV_O_NO_RO_FALLBACK 0x0002 > > > > > > This would probably make the patch smaller because I won't need to update > > > all the callers which assume flags of '0' gives a writable file, falling > > > back to RO. > > > > > > Other suggestions welcome too... > > > > Write-only should mean that only writing is allowed, read access > > should not be needed. > > You can't write to most formats unless you can read the metadata. > Flat is the exception, but WRONLY doesn't seem particularly useful. > > Whereas read-only floppy images, for example, resemble real hardware. > > I would suggest: read-only, read-write, and try-write (traditional behaviour). Functionally, that's what the implementation actually does - its just bad flag naming that's confusing things here. Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|