Bypass O_DIRECT open failures
C Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Makefile.am
README
autogen.sh
configure.ac
liboindirect.c

README

i. The Problem
--------------

Certain applications require the underlying filesystem to support open() with
O_DIRECT flag. Certain filesystems do not support open() with O_DIRECT. This
piece of code attempts to bring the two together by loading as a preloadable
shared object in the application, detect failures of open with O_DIRECT, and
re-open them without O_DIRECT (and turn on O_SYNC instead - preserving the
data protection guarantees)


ii. Usage
---------

sh$ git clone git://github.com/avati/liboindirect
sh$ cd liboindirect
sh$ ./autogen.sh
sh$ ./configure
sh$ make all
sh$ su -
sh# cp liboindirect.so /lib
sh# echo /lib/liboindirect.so > /etc/ld.so.preload