From 90749774edd0c0cab327b62ce43cb4dfd33e897d Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Tue, 11 Jan 2011 15:38:31 -0800 Subject: [PATCH] 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 --- sdcard/sdcard.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdcard/sdcard.c b/sdcard/sdcard.c index 9dda0ea37..86d7693f2 100644 --- a/sdcard/sdcard.c +++ b/sdcard/sdcard.c @@ -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;