diff options
author | resver <resver@60bc1c72-a15a-11de-b98f-4500b42dc123> | 2013-01-25 17:46:10 +0000 |
---|---|---|
committer | resver <resver@60bc1c72-a15a-11de-b98f-4500b42dc123> | 2013-01-25 17:46:10 +0000 |
commit | 19e6dd7e4106be79b824780c491e9445a9a45512 (patch) | |
tree | 8feed28e8b8f43411066882e41541673261eede9 /fuse/main.c | |
parent | 167ba2fab4a58ded60d4b40a43ccf57217104999 (diff) | |
download | android_external_exfat-19e6dd7e4106be79b824780c491e9445a9a45512.tar.gz android_external_exfat-19e6dd7e4106be79b824780c491e9445a9a45512.tar.bz2 android_external_exfat-19e6dd7e4106be79b824780c491e9445a9a45512.zip |
Fixed "Operation not permitted" error on reading an empty file: FUSE read/write ops should return a number of bytes actually read/written or -errno on error.
git-svn-id: http://exfat.googlecode.com/svn/trunk@336 60bc1c72-a15a-11de-b98f-4500b42dc123
Diffstat (limited to 'fuse/main.c')
-rw-r--r-- | fuse/main.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/fuse/main.c b/fuse/main.c index 1527347..b939164 100644 --- a/fuse/main.c +++ b/fuse/main.c @@ -155,19 +155,25 @@ static int fuse_exfat_release(const char* path, struct fuse_file_info* fi) static int fuse_exfat_read(const char* path, char* buffer, size_t size, off_t offset, struct fuse_file_info* fi) { + ssize_t ret; + exfat_debug("[%s] %s (%zu bytes)", __func__, path, size); - if (exfat_generic_pread(&ef, get_node(fi), buffer, size, offset) != size) - return EOF; - return size; + ret = exfat_generic_pread(&ef, get_node(fi), buffer, size, offset); + if (ret < 0) + return -EIO; + return ret; } static int fuse_exfat_write(const char* path, const char* buffer, size_t size, off_t offset, struct fuse_file_info* fi) { + ssize_t ret; + exfat_debug("[%s] %s (%zu bytes)", __func__, path, size); - if (exfat_generic_pwrite(&ef, get_node(fi), buffer, size, offset) != size) - return EOF; - return size; + ret = exfat_generic_pwrite(&ef, get_node(fi), buffer, size, offset); + if (ret < 0) + return -EIO; + return ret; } static int fuse_exfat_unlink(const char* path) |