diff options
Diffstat (limited to 'miscutils')
-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 7b375cfff..fb71ce85f 100644 --- a/miscutils/readahead.c +++ b/miscutils/readahead.c | |||
@@ -22,9 +22,16 @@ int readahead_main(int argc, char **argv) | |||
22 | while (*++argv) { | 22 | while (*++argv) { |
23 | int fd = open_or_warn(*argv, O_RDONLY); | 23 | int fd = open_or_warn(*argv, O_RDONLY); |
24 | if (fd >= 0) { | 24 | if (fd >= 0) { |
25 | int r = readahead(fd, 0, fdlength(fd)); | 25 | off_t len; |
26 | int r; | ||
27 | |||
28 | /* fdlength was reported to be unreliable - use seek */ | ||
29 | len = xlseek(fd, 0, SEEK_END); | ||
30 | xlseek(fd, 0, SEEK_SET); | ||
31 | r = readahead(fd, 0, len); | ||
26 | close(fd); | 32 | close(fd); |
27 | if (r >= 0) continue; | 33 | if (r >= 0) |
34 | continue; | ||
28 | } | 35 | } |
29 | retval = EXIT_FAILURE; | 36 | retval = EXIT_FAILURE; |
30 | } | 37 | } |