From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38054) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WO6Nu-0000pB-32 for qemu-devel@nongnu.org; Thu, 13 Mar 2014 10:13:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WO6No-0007FL-JH for qemu-devel@nongnu.org; Thu, 13 Mar 2014 10:13:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:58392) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WO6No-0007F2-Bv for qemu-devel@nongnu.org; Thu, 13 Mar 2014 10:13:16 -0400 From: Stefan Hajnoczi Date: Thu, 13 Mar 2014 15:11:07 +0100 Message-Id: <1394719868-24312-24-git-send-email-stefanha@redhat.com> In-Reply-To: <1394719868-24312-1-git-send-email-stefanha@redhat.com> References: <1394719868-24312-1-git-send-email-stefanha@redhat.com> Subject: [Qemu-devel] [PULL v2 for-2.0 23/24] 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: Peter Maydell , Stefan Hajnoczi , Anthony Liguori , Max Reitz From: 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 Signed-off-by: Stefan Hajnoczi --- 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.8.5.3