Doug,

I had the same problem. Unfortunately getting rid of the bogus SMB<->NFS proxy 
approach was no option.
The solution was a kernel patch found on a Samba mailing list (don't recall 
which one, a couple of years old IIRC).

Here's the patch as it will apply to a RHEL5/CentOS5 kernel:

--- a/fs/nfs/file.c     2011-02-22 12:49:27.000000000 +0100
+++ b/fs/nfs/file.c     2011-02-22 13:14:57.000000000 +0100

@@ -653,10 +653,16 @@
         * Not sure whether that would be unique, though, or whether
         * that would break in other places.
         */
-       if (!(fl->fl_flags & FL_FLOCK))
+
+       /**
+       * Don't simulate flock() using posix locks, as they appear to collide 
with
+       * legitimate posix locks from the same process.
+       */
+       if (fl->fl_flags & FL_FLOCK)
                return -ENOLCK;

        /* We're simulating flock() locks using posix locks on the server */
+       /* ...except we shouldn't get here, due to the above patch. */
        fl->fl_owner = (fl_owner_t)filp;
        fl->fl_start = 0;
        fl->fl_end = OFFSET_MAX;

I downloaded the kernel source rpm, installed it and put the patch into a file 
in the /usr/src/redhat/SOURCES directory.
Then I modified the /usr/src/redhat/SPECS/kernel-2.6.spec file to apply the 
patch and ran
rpmbuild -ba kernel-2.6.spec
The kernel RPMs created are in /usr/src/redhat/RPMS/<architecture>

Mail me if you need details regarding this procedure...

Uli


-- 
To unsubscribe from this list go to the following URL and read the
instructions:  https://lists.samba.org/mailman/options/samba

Reply via email to