With recent discussion on the LKML[1], it seems likely that Linux will finally support posix_fadvise in a useful way with the FADV_DONTNEED flag. This should allow us to minimize the effect of rsync on the system's working set. Add the necessary wrapper to syscall.c. [1] http://lkml.org/lkml/2010/11/21/59 --- syscall.c | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) diff --git a/syscall.c b/syscall.c index cfabc3e..9f5b1c3 100644 --- a/syscall.c +++ b/syscall.c @@ -28,6 +28,7 @@ #ifdef HAVE_SYS_ATTR_H #include <sys/attr.h> #endif +#include <fcntl.h> extern int dry_run; extern int am_root; @@ -282,3 +283,13 @@ OFF_T do_lseek(int fd, OFF_T offset, int whence) return lseek(fd, offset, whence); #endif } + +#if _XOPEN_SOURCE >= 600 +int do_fadvise(int fd, OFF_T offset, OFF_T len, int advise) +{ + return posix_fadvise(fd, offset, len, advise); +} +#else +#define do_fadvise() +#endif + -- 1.7.1