From owner-svn-src-user@FreeBSD.ORG Tue Nov 25 17:07:58 2014 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3898EA66; Tue, 25 Nov 2014 17:07:58 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 19DE78B2; Tue, 25 Nov 2014 17:07:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sAPH7vCJ067860; Tue, 25 Nov 2014 17:07:57 GMT (envelope-from marcel@FreeBSD.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sAPH7u2b067854; Tue, 25 Nov 2014 17:07:56 GMT (envelope-from marcel@FreeBSD.org) Message-Id: <201411251707.sAPH7u2b067854@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: marcel set sender to marcel@FreeBSD.org using -f From: Marcel Moolenaar Date: Tue, 25 Nov 2014 17:07:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r275055 - in user/marcel/libvdsk: bhyve bhyveload libvdsk X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Nov 2014 17:07:58 -0000 Author: marcel Date: Tue Nov 25 17:07:56 2014 New Revision: 275055 URL: https://svnweb.freebsd.org/changeset/base/275055 Log: Change the prototypes of vdsk_readv() and vdsk_writev() so that they don't return the amount read or written with -1 indicating an error, but rather just return the error. We don't support partial reads or partial writes, so trying to be like the quirky POSIX interface is just quirky. Rename the functions by dropping the v suffix. We're less like preadv and pwritev now than before and we don't have the non-iovec variants to distinguish from. Modified: user/marcel/libvdsk/bhyve/block_if.c user/marcel/libvdsk/bhyve/pci_virtio_block.c user/marcel/libvdsk/bhyveload/bhyveload.c user/marcel/libvdsk/libvdsk/vdsk.c user/marcel/libvdsk/libvdsk/vdsk.h Modified: user/marcel/libvdsk/bhyve/block_if.c ============================================================================== --- user/marcel/libvdsk/bhyve/block_if.c Tue Nov 25 16:57:27 2014 (r275054) +++ user/marcel/libvdsk/bhyve/block_if.c Tue Nov 25 17:07:56 2014 (r275055) @@ -172,14 +172,10 @@ blockif_proc(struct blockif_ctxt *bc, st switch (be->be_op) { case BOP_READ: - if (vdsk_readv(bc, br->br_iov, br->br_iovcnt, - br->br_offset) < 0) - err = errno; + err = vdsk_read(bc, br->br_iov, br->br_iovcnt, br->br_offset); break; case BOP_WRITE: - if (vdsk_writev(bc, br->br_iov, br->br_iovcnt, - br->br_offset) < 0) - err = errno; + err = vdsk_write(bc, br->br_iov, br->br_iovcnt, br->br_offset); break; case BOP_FLUSH: err = vdsk_flush(bc); Modified: user/marcel/libvdsk/bhyve/pci_virtio_block.c ============================================================================== --- user/marcel/libvdsk/bhyve/pci_virtio_block.c Tue Nov 25 16:57:27 2014 (r275054) +++ user/marcel/libvdsk/bhyve/pci_virtio_block.c Tue Nov 25 17:07:56 2014 (r275055) @@ -208,12 +208,10 @@ pci_vtblk_proc(struct pci_vtblk_softc *s switch (type) { case VBH_OP_WRITE: - if (vdsk_writev(sc, iov + 1, i - 1, offset) == -1) - err = errno; + err = vdsk_write(sc, iov + 1, i - 1, offset); break; case VBH_OP_READ: - if (vdsk_readv(sc, iov + 1, i - 1, offset) == -1) - err = errno; + err = vdsk_read(sc, iov + 1, i - 1, offset); break; case VBH_OP_IDENT: /* Assume a single buffer */ Modified: user/marcel/libvdsk/bhyveload/bhyveload.c ============================================================================== --- user/marcel/libvdsk/bhyveload/bhyveload.c Tue Nov 25 16:57:27 2014 (r275054) +++ user/marcel/libvdsk/bhyveload/bhyveload.c Tue Nov 25 17:07:56 2014 (r275055) @@ -289,18 +289,18 @@ cb_diskread(void *arg, int unit, uint64_ size_t *resid) { struct iovec iov; - ssize_t n; + int error; if (unit < 0 || unit >= ndisks) return (EIO); iov.iov_base = to; iov.iov_len = size; - n = vdsk_readv(disk[unit], &iov, 1, from); - if (n < 0) - return (errno); - *resid = size - n; - return (0); + error = vdsk_read(disk[unit], &iov, 1, from); + if (!error) + *resid = 0; + + return (error); } static int Modified: user/marcel/libvdsk/libvdsk/vdsk.c ============================================================================== --- user/marcel/libvdsk/libvdsk/vdsk.c Tue Nov 25 16:57:27 2014 (r275054) +++ user/marcel/libvdsk/libvdsk/vdsk.c Tue Nov 25 17:07:56 2014 (r275055) @@ -142,24 +142,24 @@ vdsk_sectorsize(vdskctx ctx) return (vdsk->sectorsize); } -ssize_t -vdsk_readv(vdskctx ctx, const struct iovec *iov, int iovcnt, off_t offset) +int +vdsk_read(vdskctx ctx, const struct iovec *iov, int iovcnt, off_t offset) { struct vdsk *vdsk = vdsk_deref(ctx); ssize_t res; res = preadv(vdsk->fd, iov, iovcnt, offset); - return (res); + return ((res == -1) ? errno : 0); } -ssize_t -vdsk_writev(vdskctx ctx, const struct iovec *iov, int iovcnt, off_t offset) +int +vdsk_write(vdskctx ctx, const struct iovec *iov, int iovcnt, off_t offset) { struct vdsk *vdsk = vdsk_deref(ctx); ssize_t res; res = pwritev(vdsk->fd, iov, iovcnt, offset); - return (res); + return ((res == -1) ? errno : 0); } int Modified: user/marcel/libvdsk/libvdsk/vdsk.h ============================================================================== --- user/marcel/libvdsk/libvdsk/vdsk.h Tue Nov 25 16:57:27 2014 (r275054) +++ user/marcel/libvdsk/libvdsk/vdsk.h Tue Nov 25 17:07:56 2014 (r275055) @@ -41,8 +41,8 @@ int vdsk_close(vdskctx); off_t vdsk_capacity(vdskctx); int vdsk_sectorsize(vdskctx); -ssize_t vdsk_readv(vdskctx, const struct iovec *, int, off_t); -ssize_t vdsk_writev(vdskctx, const struct iovec *, int, off_t); +int vdsk_read(vdskctx, const struct iovec *, int, off_t); +int vdsk_write(vdskctx, const struct iovec *, int, off_t); int vdsk_flush(vdskctx);