Direct I/O support (patches included)

Brian K. White brian at
Thu Feb 14 09:45:54 MST 2013

On 2/14/2013 9:50 AM, Dag Wieers wrote:
> Hi,
> Since a --direct-io feature was requested a few times the past decade
> with little response and the actual patch is quite trivial, I patched
> both v3.0.9 and master branch and included the patches here.
> If this functionality is acceptable I don't mind spending the additional
> effort to update the documentation, etc.
> Beware that the underlying filesystem needs Direct I/O support,
> therefore for this to work on NFS, one needs the kernel
> CONFIG_NFS_DIRECTIO enabled (probably default these days anyway). This
> is the reason why --direct-io is not enabled by default and should be
> used with care. I don't know what the behavior is if the local or remote
> side do not support O_DIRECT.
> In my tests it provides a much more stable copy process (on NFS) with
> improved performance, but I didn't do any prolonged repeated tests yet
> (I only used it during a large copy that was ongoing so I prefer not to
> juggle with numbers here). Please test yourself and report back.
> Kind regards,

When I drop the 3.0.9 diff into my otherwise working spec file for 3.0.9 
on opensuse build service, it patches and builds with no error, but 
"make test" fails:

+ cd rsync-3.0.9
+ /usr/bin/make test
gcc -std=gnu99 -I. -I. -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 
-fstack-protector -funwind-tables -fasynchronous-unwind-tables 
-DHAVE_CONFIG_H -Wall -W  -c tls.c -o tls.o
gcc -std=gnu99 -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 
-fstack-protector -funwind-tables -fasynchronous-unwind-tables 
-DHAVE_CONFIG_H -Wall -W  -o tls tls.o syscall.o lib/compat.o 
lib/snprintf.o lib/permstring.o lib/sysxattrs.o  -lacl -lpopt
syscall.o: In function `do_open':
syscall.c:(.text+0x29b): undefined reference to `direct_io'
collect2: ld returned 1 exit status
make: *** [tls] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.isF55i (%check)

What should I look for?
This is opensuse 11.4 x86_64
linux 2.6.37
reiserfs (reiser3)


More information about the rsync mailing list