From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37728) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WM4N6-0006vr-LM for qemu-devel@nongnu.org; Fri, 07 Mar 2014 18:40:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WM4N1-0007fr-2x for qemu-devel@nongnu.org; Fri, 07 Mar 2014 18:40:08 -0500 Received: from mx1.redhat.com ([209.132.183.28]:2758) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WM4N0-0007ey-Ro for qemu-devel@nongnu.org; Fri, 07 Mar 2014 18:40:03 -0500 From: Max Reitz Date: Sat, 8 Mar 2014 00:39:44 +0100 Message-Id: <1394235585-10500-5-git-send-email-mreitz@redhat.com> In-Reply-To: <1394235585-10500-1-git-send-email-mreitz@redhat.com> References: <1394235585-10500-1-git-send-email-mreitz@redhat.com> Subject: [Qemu-devel] [PATCH v2 4/5] block/raw-posix: Strip protocol prefix on creation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , =?UTF-8?q?Beno=C3=AEt=20Canet?= , Stefan Hajnoczi , Max Reitz The hdev_create() implementation in block/raw-posix.c is used by the "host_device", "host_cdrom" and "host_floppy" protocol block drivers together. Thus, any of the associated prefixes may occur and exactly one should should be stripped, if it does (thus, "host_device:host_cdrom:/dev/cdrom" is not shortened to "/dev/cdrom"). Signed-off-by: Max Reitz Reviewed-by: Benoit Canet --- block/raw-posix.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/block/raw-posix.c b/block/raw-posix.c index 697cd2e..1688e16 100644 --- a/block/raw-posix.c +++ b/block/raw-posix.c @@ -1776,6 +1776,18 @@ static int hdev_create(const char *filename, QEMUOptionParameter *options, int ret = 0; struct stat stat_buf; int64_t total_size = 0; + bool has_prefix; + + /* This function is used by all three protocol block drivers and therefore + * any of these three prefixes may be given. + * The return value has to be stored somewhere, otherwise this is an error + * due to -Werror=unused-value. */ + has_prefix = + strstart(filename, "host_device:", &filename) || + strstart(filename, "host_cdrom:" , &filename) || + strstart(filename, "host_floppy:", &filename); + + (void)has_prefix; /* Read out options */ while (options && options->name) { -- 1.9.0