X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fmount_image.c;h=b658effd07e28240a82cf979ee4e5ee53f8cba9f;hp=bd27a46aa74902ad71bb72a613c13abee87b76ef;hb=161e7cdd2c0d3b3c1025da452a3192d381297465;hpb=b5238e5a022184cbc13ebf510bc5081140867abe diff --git a/src/mount_image.c b/src/mount_image.c index bd27a46a..b658effd 100644 --- a/src/mount_image.c +++ b/src/mount_image.c @@ -160,54 +160,6 @@ flags_writable(int open_flags) return open_flags & (O_RDWR | O_WRONLY); } -/* Like pread(), but keep trying until everything has been read or we know for - * sure that there was an error. */ -static ssize_t -full_pread(int fd, void *buf, size_t count, off_t offset) -{ - ssize_t bytes_remaining = count; - ssize_t bytes_read; - - while (bytes_remaining > 0) { - bytes_read = pread(fd, buf, bytes_remaining, offset); - if (bytes_read <= 0) { - if (bytes_read < 0) { - if (errno == EINTR) - continue; - } else { - errno = EIO; - } - break; - } - bytes_remaining -= bytes_read; - buf += bytes_read; - offset += bytes_read; - } - return count - bytes_remaining; -} - -/* Like pwrite(), but keep trying until everything has been written or we know - * for sure that there was an error. */ -static ssize_t -full_pwrite(int fd, const void *buf, size_t count, off_t offset) -{ - ssize_t bytes_remaining = count; - ssize_t bytes_written; - - while (bytes_remaining > 0) { - bytes_written = pwrite(fd, buf, bytes_remaining, offset); - if (bytes_written < 0) { - if (errno == EINTR) - continue; - break; - } - bytes_remaining -= bytes_written; - buf += bytes_written; - offset += bytes_written; - } - return count - bytes_remaining; -} - /* * Allocate a file descriptor for a stream. * @@ -1687,8 +1639,8 @@ wimfs_getxattr(const char *path, const char *name, char *value, if (res_size > size) return -ERANGE; - ret = read_full_resource_into_buf(lte, value, true); - if (ret != 0) + ret = read_full_resource_into_buf(lte, value); + if (ret) return -EIO; return res_size; @@ -1953,7 +1905,7 @@ wimfs_read(const char *path, char *buf, size_t size, break; case RESOURCE_IN_WIM: if (read_partial_wim_resource_into_buf(fd->f_lte, size, - offset, buf, true)) + offset, buf)) ret = -errno; else ret = size; @@ -2526,7 +2478,7 @@ wimlib_mount_image(WIMStruct *wim, int image, const char *dir, } if (mount_flags & WIMLIB_MOUNT_FLAG_READWRITE) { - ret = lock_wim(wim, wim->fp); + ret = lock_wim(wim, wim->in_fd); if (ret) goto out; }