Re: how does meta xlator work?

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

 



My guess would be that direct_io_mode works differently on *BSD. In Linux (and it appears in OS/X as well), the VFS takes hint from the file size (returned in lookup/stat) to limit itself from not read()ing beyond that offset. So if a file size is returned 0 in lookup, read() is never received even by FUSE.

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.)

So my guess would be to inspect how direct_io_mode works in those FUSE implementations first. It is unlikely to be any other issue.

Thanks


On Sun, Aug 10, 2014 at 9:56 PM, Harshavardhana <harsha@xxxxxxxxxxxxxxxxxx> wrote:
> I am working on tests/basic/meta.t on NetBSD
> It fails because .meta/frames is empty, like all files in .meta. A quick
> investigation in source code shows that the function responsible for
> filling the code (frames_file_fill) is never called.
>

Same experience here.

It does work on OSX, but does not work on FreeBSD for similar reasons
haven't figured it out yet what is causing the issue.

--
Religious confuse piety with mere ritual, the virtuous confuse
regulation with outcomes
_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
http://supercolony.gluster.org/mailman/listinfo/gluster-devel

_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
http://supercolony.gluster.org/mailman/listinfo/gluster-devel

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

  Powered by Linux