]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-lock-mask-64bit-negative-1-for-java-20070212
authorAdam Megacz <megacz@cs.berkeley.edu>
Tue, 13 Feb 2007 01:36:11 +0000 (01:36 +0000)
committerDerrick Brashear <shadow@dementia.org>
Tue, 13 Feb 2007 01:36:11 +0000 (01:36 +0000)
java sends a 64 bit long -1... which isn't going to be useful most of the time

(cherry picked from commit 01882246c8704e9cfad38e8bce71380b843fbbab)

src/afs/VNOPS/afs_vnop_flock.c

index e2eaf8ac67581b261c0bce73b1711e3606ad7598..af942f18fca0197c41d009149199473957e076d4 100644 (file)
@@ -547,6 +547,10 @@ int afs_lockctl(struct vcache * avc, struct AFS_FLOCK * af, int acmd,
        af->l_len = 0;          /* since some systems indicate it as EOF */
 #endif
 #endif
+    /* Java VMs ask for l_len=(long)-1 regardless of OS/CPU; bottom 32 bits
+     * sometimes get masked off by OS */
+    if ((af->l_len >> 32) == 0x7fffffff)
+       af->l_len = 0;
     /* next line makes byte range locks always succeed,
      * even when they should block */
     if (af->l_whence != 0 || af->l_start != 0 || af->l_len != 0) {