Bypass O_DIRECT open failures
Switch branches/tags
Nothing to show
Clone or download
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