summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortedu <tedu@openbsd.org>2017-05-27 23:58:16 +0000
committertedu <tedu@openbsd.org>2017-05-27 23:58:16 +0000
commit8ea9bdcd1da7ee104de58f27a1ff45c8ccbbd873 (patch)
treebb1130f9035d7918e88f7d35e56fc4cf97d29b49
parentFix the carp mode 'balancing ip-stealth'. Set the link state UP (diff)
downloadwireguard-openbsd-8ea9bdcd1da7ee104de58f27a1ff45c8ccbbd873.tar.xz
wireguard-openbsd-8ea9bdcd1da7ee104de58f27a1ff45c8ccbbd873.zip
use pread and pwrite to save code and syscalls. ok mlarkin
-rw-r--r--usr.sbin/vmd/virtio.c19
1 files changed, 3 insertions, 16 deletions
diff --git a/usr.sbin/vmd/virtio.c b/usr.sbin/vmd/virtio.c
index 0875b74f97e..14525cf2c45 100644
--- a/usr.sbin/vmd/virtio.c
+++ b/usr.sbin/vmd/virtio.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: virtio.c,v 1.46 2017/05/11 07:31:20 mlarkin Exp $ */
+/* $OpenBSD: virtio.c,v 1.47 2017/05/27 23:58:16 tedu Exp $ */
/*
* Copyright (c) 2015 Mike Larkin <mlarkin@openbsd.org>
@@ -335,14 +335,7 @@ vioblk_do_read(struct vioblk_dev *dev, off_t sector, ssize_t sz)
return (NULL);
}
- if (lseek(dev->fd, sector * VIRTIO_BLK_SECTOR_SIZE,
- SEEK_SET) == -1) {
- log_warn("seek error in vioblk read");
- free(buf);
- return (NULL);
- }
-
- if (read(dev->fd, buf, sz) != sz) {
+ if (pread(dev->fd, buf, sz, sector * VIRTIO_BLK_SECTOR_SIZE) != sz) {
log_warn("vioblk read error");
free(buf);
return (NULL);
@@ -354,13 +347,7 @@ vioblk_do_read(struct vioblk_dev *dev, off_t sector, ssize_t sz)
static int
vioblk_do_write(struct vioblk_dev *dev, off_t sector, char *buf, ssize_t sz)
{
- if (lseek(dev->fd, sector * VIRTIO_BLK_SECTOR_SIZE,
- SEEK_SET) == -1) {
- log_warn("seek error in vioblk write");
- return (1);
- }
-
- if (write(dev->fd, buf, sz) != sz) {
+ if (pwrite(dev->fd, buf, sz, sector * VIRTIO_BLK_SECTOR_SIZE) != sz) {
log_warn("vioblk write error");
return (1);
}