-
Konstantin Khlebnikov authored
(1) mkostemp with O_DIRECT in flags can fail, leaving a temporary file: Apparently, O_DIRECT is not working on top of LVM. The problem is in this case mkostemp() creates the temporary file but still returns an error, and the temp file is not removed: $ ls ioping ioping.1 ioping.c ioping.o ioping.spec Makefile $ strace ./ioping -D . .... open("./ioping.UFuMHz", O_RDWR|O_CREAT|O_EXCL|O_DIRECT, 0600) = -1 EINVAL (Invalid argument) .... $ ls ioping ioping.1 ioping.c ioping.o ioping.UFuMHz ioping.spec Makefile Solution -- do not use flags, apply those later using fcntl() (2) While trying to rebuild on centos5: cc -c -o ioping.o ioping.c -std=c99 -g -Wall -Wextra -pedantic -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 ioping.c: In function 'main': ioping.c:369: warning: implicit declaration of function 'mkostemp' Signed-off-by: Kir Kolyshkin <kir@openvz.org>
a3d52a18