[Gluster-devel] how does meta xlator work?

Anand Avati avati at gluster.org
Tue Aug 12 04:53:19 UTC 2014


On Mon, Aug 11, 2014 at 9:14 PM, Emmanuel Dreyfus <manu at netbsd.org> wrote:

> Anand Avati <avati at gluster.org> wrote:
>
> > In meta all file sizes are 0 (since the contents of the inode are
> generated
> > dynamically on open()/read(), size is unknown during lookup() -- just
> like
> > /proc). And therefore all meta file open()s are forced into
> direct_io_mode (
> > http://review.gluster.org/7506) so that read() requests are sent
> straight
> > to FUSE/glusterfs bypassing VFS (size is ignored etc.)
>
> I found the code in the kernel that skips the read if it is beyond known
> file size. Hence I guess the idea is that on lookup of a file with a
> size equal to 0, a special handling should be done so that reads happens
> anyway.


If FUSE implements proper direct_io semantics (somewhat like how O_DIRECT
flag is handled) and allows the mode to be enabled by the FS in open_cbk,
then I guess such a special handling of 0-byte need not be necessary? At
least it hasn't been necessary in Linux FUSE implementation.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://supercolony.gluster.org/pipermail/gluster-devel/attachments/20140811/c548a17a/attachment.html>


More information about the Gluster-devel mailing list