diff options
-rw-r--r-- | booster/src/booster.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/booster/src/booster.c b/booster/src/booster.c index c0f3b004693..6b842408eeb 100644 --- a/booster/src/booster.c +++ b/booster/src/booster.c @@ -764,24 +764,13 @@ readv (int fd, const struct iovec *vector, int count) glfs_fd = booster_get_glfs_fd (booster_glfs_fdtable, fd); if (!glfs_fd) { - ret = real_readv (fd, vector, 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_readv (glfs_fd, vector, count); - } - } else { + if (real_readv == NULL) { + errno = ENOSYS; ret = -1; - } - + } else + ret = real_readv (fd, vector, count); + } else { ret = glusterfs_readv (glfs_fd, vector, count); - if (ret > 0) { - real_lseek64 (fd, offset + ret, SEEK_SET); - } - booster_put_glfs_fd (glfs_fd); } |