From nobody Sun Feb 8 23:05:08 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496416079432144.55769752646802; Fri, 2 Jun 2017 08:07:59 -0700 (PDT) Received: from localhost ([::1]:50193 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dGoBB-0006rA-29 for importer@patchew.org; Fri, 02 Jun 2017 11:07:57 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35973) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dGo5Q-0001FT-Gd for qemu-devel@nongnu.org; Fri, 02 Jun 2017 11:02:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dGo5L-0002ga-Uh for qemu-devel@nongnu.org; Fri, 02 Jun 2017 11:02:00 -0400 Received: from mailhub.sw.ru ([195.214.232.25]:6544 helo=relay.sw.ru) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dGo5L-0002eZ-HS for qemu-devel@nongnu.org; Fri, 02 Jun 2017 11:01:55 -0400 Received: from kvm.sw.ru (msk-vpn.virtuozzo.com [195.214.232.6]) by relay.sw.ru (8.13.4/8.13.4) with ESMTP id v52F1oct008525; Fri, 2 Jun 2017 18:01:51 +0300 (MSK) From: Vladimir Sementsov-Ogievskiy To: qemu-devel@nongnu.org Date: Fri, 2 Jun 2017 18:01:40 +0300 Message-Id: <20170602150150.258222-3-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.11.1 In-Reply-To: <20170602150150.258222-1-vsementsov@virtuozzo.com> References: <20170602150150.258222-1-vsementsov@virtuozzo.com> X-detected-operating-system: by eggs.gnu.org: OpenBSD 3.x [fuzzy] X-Received-From: 195.214.232.25 Subject: [Qemu-devel] [PATCH v2 02/12] nbd: make nbd_drop public X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, vsementsov@virtuozzo.com, den@openvz.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Following commit will reuse it for nbd server too. Reviewed-by: Eric Blake Signed-off-by: Vladimir Sementsov-Ogievskiy --- nbd/client.c | 26 -------------------------- nbd/common.c | 26 ++++++++++++++++++++++++++ nbd/nbd-internal.h | 2 ++ 3 files changed, 28 insertions(+), 26 deletions(-) diff --git a/nbd/client.c b/nbd/client.c index 08050c39b3..215857f65d 100644 --- a/nbd/client.c +++ b/nbd/client.c @@ -86,32 +86,6 @@ static QTAILQ_HEAD(, NBDExport) exports =3D QTAILQ_HEAD_= INITIALIZER(exports); =20 */ =20 -/* Discard length bytes from channel. Return -errno on failure and 0 on - * success*/ -static int nbd_drop(QIOChannel *ioc, size_t size, Error **errp) -{ - ssize_t ret =3D 0; - char small[1024]; - char *buffer; - - buffer =3D sizeof(small) >=3D size ? small : g_malloc(MIN(65536, size)= ); - while (size > 0) { - ssize_t count =3D MIN(65536, size); - ret =3D nbd_read(ioc, buffer, MIN(65536, size), errp); - - if (ret < 0) { - goto cleanup; - } - size -=3D count; - } - - cleanup: - if (buffer !=3D small) { - g_free(buffer); - } - return ret; -} - /* Send an option request. * * The request is for option @opt, with @data containing @len bytes of diff --git a/nbd/common.c b/nbd/common.c index d6b719ddaa..6b5c1b7b02 100644 --- a/nbd/common.c +++ b/nbd/common.c @@ -65,6 +65,32 @@ ssize_t nbd_rwv(QIOChannel *ioc, struct iovec *iov, size= _t niov, size_t length, return done; } =20 +/* Discard length bytes from channel. Return -errno on failure and 0 on + * success */ +int nbd_drop(QIOChannel *ioc, size_t size, Error **errp) +{ + ssize_t ret =3D 0; + char small[1024]; + char *buffer; + + buffer =3D sizeof(small) >=3D size ? small : g_malloc(MIN(65536, size)= ); + while (size > 0) { + ssize_t count =3D MIN(65536, size); + ret =3D nbd_read(ioc, buffer, MIN(65536, size), errp); + + if (ret < 0) { + goto cleanup; + } + size -=3D count; + } + + cleanup: + if (buffer !=3D small) { + g_free(buffer); + } + return ret; +} + =20 void nbd_tls_handshake(QIOTask *task, void *opaque) diff --git a/nbd/nbd-internal.h b/nbd/nbd-internal.h index 753cb9d9c5..39bfed177c 100644 --- a/nbd/nbd-internal.h +++ b/nbd/nbd-internal.h @@ -153,4 +153,6 @@ struct NBDTLSHandshakeData { void nbd_tls_handshake(QIOTask *task, void *opaque); =20 +int nbd_drop(QIOChannel *ioc, size_t size, Error **errp); + #endif --=20 2.11.1