- if (!tdb_pread_all(tdb->fd, buf, len, off)) {
- /* Ensure ecode is set for log fn. */
- tdb->ecode = TDB_ERR_IO;
- tdb->log(tdb, TDB_DEBUG_FATAL, tdb->log_priv,
- "tdb_read failed at %lld "
- "len=%lld (%s) map_size=%lld\n",
- (long long)off, (long long)len,
- strerror(errno),
- (long long)tdb->map_size);
- return -1;
+ ssize_t r = pread(tdb->fd, buf, len, off);
+ if (r != len) {
+ return tdb_logerr(tdb, TDB_ERR_IO, TDB_LOG_ERROR,
+ "tdb_read failed with %zi at %zu "
+ "len=%zu (%s) map_size=%zu",
+ r, (size_t)off, (size_t)len,
+ strerror(errno),
+ (size_t)tdb->map_size);