Use posix_fadvise to tell the kernel how we use the output file.
authorRichard W.M. Jones <rjones@redhat.com>
Tue, 22 Oct 2013 10:59:30 +0000 (11:59 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Tue, 22 Oct 2013 10:59:30 +0000 (11:59 +0100)
pxzcat.c

index 346e3f8..a6becce 100644 (file)
--- a/pxzcat.c
+++ b/pxzcat.c
@@ -171,6 +171,9 @@ xzfile_uncompress (const char *filename, const char *outputfile,
   if (ftruncate (ofd, size) == -1)
     error (EXIT_FAILURE, errno, "ftruncate: %s", outputfile);
 
+  /* Tell the kernel we won't read the output file. */
+  posix_fadvise (fd, 0, 0, POSIX_FADV_RANDOM|POSIX_FADV_DONTNEED);
+
   /* Iterate over blocks. */
   iter_blocks (idx, nr_threads, filename, fd, outputfile, ofd);