diff options
Diffstat (limited to 'booster/src/booster.c')
-rw-r--r-- | booster/src/booster.c | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/booster/src/booster.c b/booster/src/booster.c index dd157f78a..c0f3b0046 100644 --- a/booster/src/booster.c +++ b/booster/src/booster.c @@ -742,27 +742,13 @@ read (int fd, void *buf, size_t count) glfs_fd = booster_get_glfs_fd (booster_glfs_fdtable, fd); if (!glfs_fd) { - ret = real_read (fd, buf, count); - } else { - uint64_t offset = 0; - offset = real_lseek64 (fd, 0L, SEEK_CUR); - if ((int64_t)offset != -1) { - ret = glusterfs_lseek (glfs_fd, offset, SEEK_SET); - if (ret != -1) { - ret = glusterfs_read (glfs_fd, buf, count); - } - } else { + if (real_read == NULL) { + errno = ENOSYS; ret = -1; - } - - if (ret == -1) { + } else ret = real_read (fd, buf, count); - } - - if (ret > 0 && ((int64_t) offset) >= 0) { - real_lseek64 (fd, ret + offset, SEEK_SET); - } - + } else { + ret = glusterfs_read (glfs_fd, buf, count); booster_put_glfs_fd (glfs_fd); } |