Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 90749774 authored by Kenny Root's avatar Kenny Root
Browse files

Use pread64/pwrite64 instead of pread/pwrite

>2GB files were failing strangely when pread was used instead of
pread64. Also writing to files should use pwrite64 in case they grow
over 2GB.

Bug: 3205336
Change-Id: I0c9619de35680093d7777ca132ce488eae502216
parent d66aa916
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -652,7 +652,7 @@ void handle_fuse_request(struct fuse *fuse, struct fuse_in_header *hdr, void *da
            fuse_status(fuse, hdr->unique, -EINVAL);
            return;
        }
        res = pread(h->fd, buffer, req->size, req->offset);
        res = pread64(h->fd, buffer, req->size, req->offset);
        if (res < 0) {
            fuse_status(fuse, hdr->unique, errno);
            return;
@@ -666,7 +666,7 @@ void handle_fuse_request(struct fuse *fuse, struct fuse_in_header *hdr, void *da
        struct handle *h = id_to_ptr(req->fh);
        int res;
        TRACE("WRITE %p(%d) %u@%llu\n", h, h->fd, req->size, req->offset);
        res = pwrite(h->fd, ((char*) data) + sizeof(*req), req->size, req->offset);
        res = pwrite64(h->fd, ((char*) data) + sizeof(*req), req->size, req->offset);
        if (res < 0) {
            fuse_status(fuse, hdr->unique, errno);
            return;