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
This commit is contained in:
Kenny Root 2011-01-11 15:38:31 -08:00
parent d66aa91623
commit 90749774ed

View file

@ -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;