From patchwork Tue Jan 19 21:00:09 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 43226 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 11C7DB7CA6 for ; Wed, 20 Jan 2010 08:03:38 +1100 (EST) Received: from localhost ([127.0.0.1]:40471 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NXLCe-0004Ss-Lu for incoming@patchwork.ozlabs.org; Tue, 19 Jan 2010 16:01:32 -0500 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NXLBS-0004Sk-JV for qemu-devel@nongnu.org; Tue, 19 Jan 2010 16:00:18 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NXLBN-0004SV-8S for qemu-devel@nongnu.org; Tue, 19 Jan 2010 16:00:18 -0500 Received: from [199.232.76.173] (port=59869 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NXLBN-0004SS-2C for qemu-devel@nongnu.org; Tue, 19 Jan 2010 16:00:13 -0500 Received: from verein.lst.de ([213.95.11.210]:43844) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_3DES_EDE_CBC_SHA1:24) (Exim 4.60) (envelope-from ) id 1NXLBL-0002F3-Qn for qemu-devel@nongnu.org; Tue, 19 Jan 2010 16:00:12 -0500 Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id o0JL09WY003812 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Tue, 19 Jan 2010 22:00:09 +0100 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-7.2) id o0JL09dA003811 for qemu-devel@nongnu.org; Tue, 19 Jan 2010 22:00:09 +0100 Date: Tue, 19 Jan 2010 22:00:09 +0100 From: Christoph Hellwig To: qemu-devel@nongnu.org Message-ID: <20100119210009.GA3736@lst.de> References: <20100111175209.GB7571@lst.de> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <20100111175209.GB7571@lst.de> User-Agent: Mutt/1.3.28i X-Spam-Score: 0 () X-Scanned-By: MIMEDefang 2.39 X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) Subject: [Qemu-devel] PATCH 3/2] block: kill BDRV_O_CREAT X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org The BDRV_O_CREAT option is unused inside qemu and partially duplicates the bdrv_create method. Remove it, and the -C option to qemu-io which isn't used in qemu-iotests anyway. Signed-off-by: Christoph Hellwig Index: qemu/block.c =================================================================== --- qemu.orig/block.c 2010-01-19 21:45:08.901004272 +0100 +++ qemu/block.c 2010-01-19 21:45:44.105254367 +0100 @@ -469,13 +469,6 @@ int bdrv_open2(BlockDriverState *bs, con open_flags |= BDRV_O_RDWR; } - /* - * Currently BDRV_O_CREAT is not supported by any image format, - * but I'm not sure that's reason enough to always clear it for - * the !BDRV_O_FILE case.. - */ - open_flags &= ~(BDRV_O_CREAT); - ret = drv->bdrv_open(bs, filename, open_flags); if (ret == -EACCES || ret == -EPERM) { ret = drv->bdrv_open(bs, filename, open_flags & ~BDRV_O_RDWR); Index: qemu/block.h =================================================================== --- qemu.orig/block.h 2010-01-19 21:47:10.720003392 +0100 +++ qemu/block.h 2010-01-19 21:47:29.261004392 +0100 @@ -30,7 +30,7 @@ typedef struct QEMUSnapshotInfo { #define BDRV_O_RDONLY 0x0000 #define BDRV_O_RDWR 0x0002 #define BDRV_O_ACCESS 0x0003 -#define BDRV_O_CREAT 0x0004 /* create an empty file */ +/* 0x0004 was BDRV_O_CREAT */ #define BDRV_O_SNAPSHOT 0x0008 /* open the file read only and save writes in a snapshot */ #define BDRV_O_FILE 0x0010 /* open as a raw file (do not try to use a disk image format on top of Index: qemu/block/nbd.c =================================================================== --- qemu.orig/block/nbd.c 2010-01-19 21:45:52.925004048 +0100 +++ qemu/block/nbd.c 2010-01-19 21:45:59.117254240 +0100 @@ -49,9 +49,6 @@ static int nbd_open(BlockDriverState *bs size_t blocksize; int ret; - if ((flags & BDRV_O_CREAT)) - return -EINVAL; - if (!strstart(filename, "nbd:", &host)) return -EINVAL; Index: qemu/block/raw-posix.c =================================================================== --- qemu.orig/block/raw-posix.c 2010-01-19 21:46:40.265260294 +0100 +++ qemu/block/raw-posix.c 2010-01-19 21:47:06.080254365 +0100 @@ -205,13 +205,9 @@ out_close: static int raw_open(BlockDriverState *bs, const char *filename, int flags) { BDRVRawState *s = bs->opaque; - int open_flags = 0; s->type = FTYPE_FILE; - if (flags & BDRV_O_CREAT) - open_flags = O_CREAT | O_TRUNC; - - return raw_open_common(bs, filename, flags, open_flags); + return raw_open_common(bs, filename, flags, 0); } /* XXX: use host sector size if necessary with: Index: qemu/block/raw-win32.c =================================================================== --- qemu.orig/block/raw-win32.c 2010-01-19 21:46:05.928253941 +0100 +++ qemu/block/raw-win32.c 2010-01-19 21:46:36.202254338 +0100 @@ -76,7 +76,7 @@ static int set_sparse(int fd) static int raw_open(BlockDriverState *bs, const char *filename, int flags) { BDRVRawState *s = bs->opaque; - int access_flags, create_flags; + int access_flags; DWORD overlapped; s->type = FTYPE_FILE; @@ -86,11 +86,7 @@ static int raw_open(BlockDriverState *bs } else { access_flags = GENERIC_READ; } - if (flags & BDRV_O_CREAT) { - create_flags = CREATE_ALWAYS; - } else { - create_flags = OPEN_EXISTING; - } + overlapped = FILE_ATTRIBUTE_NORMAL; if ((flags & BDRV_O_NOCACHE)) overlapped |= FILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH; @@ -98,7 +94,7 @@ static int raw_open(BlockDriverState *bs overlapped |= FILE_FLAG_WRITE_THROUGH; s->hfile = CreateFile(filename, access_flags, FILE_SHARE_READ, NULL, - create_flags, overlapped, NULL); + OPEN_EXISTING, overlapped, NULL); if (s->hfile == INVALID_HANDLE_VALUE) { int err = GetLastError(); Index: qemu/qemu-io.c =================================================================== --- qemu.orig/qemu-io.c 2010-01-19 21:47:37.065011538 +0100 +++ qemu/qemu-io.c 2010-01-19 21:48:59.664317026 +0100 @@ -1307,7 +1307,6 @@ open_help(void) " 'open -Cn /tmp/data' - creates/opens data file read-write and uncached\n" "\n" " Opens a file for subsequent use by all of the other qemu-io commands.\n" -" -C, -- create new file if it doesn't exist\n" " -r, -- open file read-only\n" " -s, -- use snapshot file\n" " -n, -- disable host cache\n" @@ -1337,7 +1336,7 @@ open_f(int argc, char **argv) int growable = 0; int c; - while ((c = getopt(argc, argv, "snCrg")) != EOF) { + while ((c = getopt(argc, argv, "snrg")) != EOF) { switch (c) { case 's': flags |= BDRV_O_SNAPSHOT; @@ -1345,9 +1344,6 @@ open_f(int argc, char **argv) case 'n': flags |= BDRV_O_NOCACHE; break; - case 'C': - flags |= BDRV_O_CREAT; - break; case 'r': readonly = 1; break; @@ -1396,10 +1392,9 @@ init_check_command( static void usage(const char *name) { printf( -"Usage: %s [-h] [-V] [-Crsnm] [-c cmd] ... [file]\n" +"Usage: %s [-h] [-V] [-rsnm] [-c cmd] ... [file]\n" "QEMU Disk exerciser\n" "\n" -" -C, --create create new file if it doesn't exist\n" " -c, --cmd command to execute\n" " -r, --read-only export read-only\n" " -s, --snapshot use snapshot file\n" @@ -1418,13 +1413,12 @@ int main(int argc, char **argv) { int readonly = 0; int growable = 0; - const char *sopt = "hVc:Crsnmgk"; + const char *sopt = "hVc:rsnmgk"; const struct option lopt[] = { { "help", 0, NULL, 'h' }, { "version", 0, NULL, 'V' }, { "offset", 1, NULL, 'o' }, { "cmd", 1, NULL, 'c' }, - { "create", 0, NULL, 'C' }, { "read-only", 0, NULL, 'r' }, { "snapshot", 0, NULL, 's' }, { "nocache", 0, NULL, 'n' }, @@ -1450,9 +1444,6 @@ int main(int argc, char **argv) case 'c': add_user_command(optarg); break; - case 'C': - flags |= BDRV_O_CREAT; - break; case 'r': readonly = 1; break;