does Gluster support O_DIRECT ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Currently, FUSE doesn't support O_DIRECT, If you need to use O_DIRECT
with a FUSE mounted volume, you should check out liboindirect.
https://github.com/avati/liboindirect

There have been patches submitted to the FUSE project to properly
support O_DIRECT, but they have not been accepted yet.

--
Adam Tygart
Beocat Sysadmin

On Tue, Mar 13, 2012 at 20:59, Bill Bao <bill at uit.com.cn> 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 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
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> Gluster-users mailing list
> Gluster-users at gluster.org
> http://gluster.org/cgi-bin/mailman/listinfo/gluster-users
>


[Index of Archives]     [Gluster Development]     [Linux Filesytems Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux