On 03/14/2012 07:29 AM, Bill Bao wrote:

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 3^rd 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

O_DIRECT support for fuse was added recently. Check the fsdevel archives.


_______________________________________________
Gluster-users mailing list
[email protected]
http://gluster.org/cgi-bin/mailman/listinfo/gluster-users

_______________________________________________
Gluster-users mailing list
[email protected]
http://gluster.org/cgi-bin/mailman/listinfo/gluster-users

Reply via email to