<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
<title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
On 03/14/2012 07:29 AM, Bill Bao wrote:
<blockquote cite="mid:00d901cd0186$256d2dd0$70478970$@com.cn"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<meta name="Generator" content="Microsoft Word 12 (filtered
medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        font-size:10.5pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
MsoChpDefault
        {mso-style-type:export-only;}
/* Page Definitions */
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">This might be a question
asked before, but I just couldn’t effectively search the
whole archives,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">So please bear me and
kindly advise.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">We have a 3<sup>rd</sup>
party application (video streaming kind of) which uses
directIO (O_DIRECT).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">On the server side, in
the posix translator, we added the “</span><span
style="font-size: 12pt; font-family: SimSun; color: black;"
lang="EN-US">option o-direct enable”</span><span
lang="EN-US"> <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">On the client side, we
mounted as “mount -t glusterfs -o direct-io-mode=enable
server1:/test-volume /mnt/glusterfs”<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">But the application
still fails with error (cannot create/open file with
O_DIRECT).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Then we trace to the
fuse module in the kernel, which has following checking:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span
style="font-size: 10pt; font-family:
"Verdana","sans-serif"; color: rgb(49,
67, 68);" lang="EN-US">int fuse_open_common(struct inode *inode, struct file *file, bool isdir)</span><span
style="font-size: 10pt; font-family:
"Verdana","sans-serif"; color: navy;"
lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span
style="font-size: 10pt; font-family:
"Verdana","sans-serif"; color: rgb(49,
67, 68);" lang="EN-US">{</span><span style="font-size: 10pt;
font-family: "Verdana","sans-serif";
color: navy;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span
style="font-size: 10pt; font-family:
"Verdana","sans-serif"; color: rgb(49,
67, 68);" lang="EN-US"> struct fuse_conn *fc = get_fuse_conn(inode);</span><span
style="font-size: 10pt; font-family:
"Verdana","sans-serif"; color: navy;"
lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span
style="font-size: 10pt; font-family:
"Verdana","sans-serif"; color: rgb(49,
67, 68);" lang="EN-US"> int err;</span><span
style="font-size: 10pt; font-family:
"Verdana","sans-serif"; color: navy;"
lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span
style="font-size: 10pt; font-family:
"Verdana","sans-serif"; color: rgb(49,
67, 68);" lang="EN-US"> /* VFS checks this, but only _after_ ->open() */</span><span
style="font-size: 10pt; font-family:
"Verdana","sans-serif"; color: navy;"
lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span
style="font-size: 10pt; font-family:
"Verdana","sans-serif"; color: red;"
lang="EN-US"> <strong><span style="font-family:
"Verdana","sans-serif";"> if (file->f_flags & O_DIRECT)</span></strong></span><span
style="font-size: 10pt; font-family:
"Verdana","sans-serif"; color: navy;"
lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><strong><span
style="font-size: 10pt; font-family:
"Verdana","sans-serif"; color: red;"
lang="EN-US"> return -EINVAL;</span></strong><span
style="font-size: 10pt; font-family:
"Verdana","sans-serif"; color: navy;"
lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span
style="font-size: 10pt; font-family:
"Verdana","sans-serif"; color: rgb(49,
67, 68);" lang="EN-US"> err = generic_file_open(inode, file);</span><span
style="font-size: 10pt; font-family:
"Verdana","sans-serif"; color: navy;"
lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">looks like regardless
what we configure on the gluster side, the FUSE still
rejects the O_DIRECT.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Could someone shed light
? we’re also trying to take out the O_DIRECT checking in
FUSE module,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">to see what will happen,
will report soon.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Bill Bao<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</blockquote>
O_DIRECT support for fuse was added recently. Check the fsdevel
archives.<br>
<blockquote cite="mid:00d901cd0186$256d2dd0$70478970$@com.cn"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
Gluster-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a>
<a class="moz-txt-link-freetext" href="http://gluster.org/cgi-bin/mailman/listinfo/gluster-users">http://gluster.org/cgi-bin/mailman/listinfo/gluster-users</a>
</pre>
</blockquote>
<br>
</body>
</html>