[Gluster-users] does Gluster support O_DIRECT ?

Bill Bao bill at uit.com.cn
Wed Mar 14 01:59:52 UTC 2012


This might be a question asked before, but I just couldn't effectively
search the whole archives,

So please bear me and kindly advise.

 

We have a 3rd party application (video streaming kind of) which uses
directIO (O_DIRECT).

On the server side, in the posix translator, we added the "option o-direct
enable" 

On the client side, we mounted as "mount -t glusterfs -o
direct-io-mode=enable server1:/test-volume /mnt/glusterfs"

 

But the application still fails with error (cannot create/open file with
O_DIRECT).

 

Then we trace to the fuse module in the kernel, which has following
checking:

 

int fuse_open_common(struct inode *inode, struct file *file, bool isdir)

{

        struct fuse_conn *fc = get_fuse_conn(inode);

        int err;

        /* VFS checks this, but only _after_ ->open() */

        if (file->f_flags & O_DIRECT)

                return -EINVAL;

        err = generic_file_open(inode, file);

 

looks like regardless what we configure on the gluster side, the FUSE still
rejects the O_DIRECT.

Could someone shed light ? we're also trying to take out the O_DIRECT
checking in FUSE module,

to see what will happen, will report soon.

 

Bill Bao

 

 

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://supercolony.gluster.org/pipermail/gluster-users/attachments/20120314/e6686c39/attachment.html>


More information about the Gluster-users mailing list