Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Bypass O_DIRECT open failures
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
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