From 93457071cb5d47c08b60d3244f9632725634010a Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Fri, 13 Oct 2017 20:51:39 -0400 Subject: [PATCH] lib/deltas: Use pread() instead of lseek()+read() That's why the syscall was invented, so let's use it. Just noticed while reading the code while working on another patch. Closes: #1270 Approved by: jlebon --- src/libostree/ostree-repo-static-delta-processing.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/libostree/ostree-repo-static-delta-processing.c b/src/libostree/ostree-repo-static-delta-processing.c index 6596da89..fac377ec 100644 --- a/src/libostree/ostree-repo-static-delta-processing.c +++ b/src/libostree/ostree-repo-static-delta-processing.c @@ -719,15 +719,13 @@ dispatch_write (OstreeRepo *repo, { if (state->read_source_fd != -1) { - if (lseek (state->read_source_fd, content_offset, SEEK_SET) == -1) - return glnx_throw_errno_prefix (error, "lseek"); while (content_size > 0) { char buf[4096]; gssize bytes_read; do - bytes_read = read (state->read_source_fd, buf, MIN(sizeof(buf), content_size)); + bytes_read = pread (state->read_source_fd, buf, MIN(sizeof(buf), content_size), content_offset); while (G_UNLIKELY (bytes_read == -1 && errno == EINTR)); if (bytes_read == -1) return glnx_throw_errno_prefix (error, "read");