Re: Current FUSE requirements to support flock()

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

 



To follow up on my earlier post, this is what I found regarding the kernel FUSE's support for flock() and also MySQL:
  • 2.6.18.8 - flock() doesn't work, MySQL doesn't work
  • 2.6.27.4 - flock() works, MySQL doesn't work
  • 2.6.28 - flock() works, MySQL doesn't work
I performed these tests with the 2.7.4-1.el5.rf version of the FUSE userspace tools, in case that matters.

I'm guessing the MySQL issue is the one resolved with a custom patch last year: http://www.mail-archive.com/gluster-devel@xxxxxxxxxx/msg02947.html

Is there much hope of getting the MySQL FUSE patch into the main kernel?  Is the only necessary change the one to dev.c?

Thanks,
David


David Sickmiller wrote:
Hi,

The short version of my question is "What is the minimum kernel FUSE version needed for flock() support?"  If that question is unclear or a sign that I don't know I'm doing, the long version is below.

I'm new to GlusterFS, and I'm interested in using 1.4 to setup a mirrored filesystem on a couple Xen virtual servers.  Among other things, I want to store PHP session files on here, which are locked using flock(), so I need to pay attention to whether my installation of FUSE supports this.  Complicating this, my Xen hosting provider recommends using their pre-compiled kernels that have FUSE built-in.  Currently 2.6.18.8, 2.6.27.4, and 2.6.28 are available (for 64-bit).  While not impossible, it's difficult to add custom modules or use custom kernels.

I know the Technical FAQ says "Custom FUSE release (2.7.3) doesn't support flock() calls."  I'm not sure I understand what "custom FUSE" is... is this what you call it when you build the kernel module from the Sourceforge source instead of the kernel source?  I can see that, prior to Dec 08, the Install_GlusterFS_from_Source wiki page said things like "Any new kernel (>2.6.25), please use custom fuse only" and "For kernel version greater than or equal to 2.6.25, the fuse kernel module won't compile."  These two sentences don't make sense to me.  The latest version of that page says nothing about the FUSE version.

I looked at fuse-2.7.3glfs10.diff, and there are some obvious flock-related changes that are not present in the 2.6.18 kernel driver.  However, the 2.6.27 kernel FUSE driver seems to include some of this flock-related code, so I'm hopeful about it working with no additional patching.  I'm plugging forward and will eventually be able to do a simple test of my own, but I'm not prepared to do a thorough test of FUSE compatibility, so I would much appreciate a knowledgeable opinion about how to get flock() support with the kernel FUSE... or any general warnings about the road I'm going down.

Thank you,
David


[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