diff options
Diffstat (limited to 'miscutils/readahead.c')
-rw-r--r-- | miscutils/readahead.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/miscutils/readahead.c b/miscutils/readahead.c index 7b375cf..fb71ce8 100644 --- a/miscutils/readahead.c +++ b/miscutils/readahead.c @@ -22,9 +22,16 @@ int readahead_main(int argc, char **argv) while (*++argv) { int fd = open_or_warn(*argv, O_RDONLY); if (fd >= 0) { - int r = readahead(fd, 0, fdlength(fd)); + off_t len; + int r; + + /* fdlength was reported to be unreliable - use seek */ + len = xlseek(fd, 0, SEEK_END); + xlseek(fd, 0, SEEK_SET); + r = readahead(fd, 0, len); close(fd); - if (r >= 0) continue; + if (r >= 0) + continue; } retval = EXIT_FAILURE; } |