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

src/afs/VNOPS/afs_vnop_flock.c

index 6d1ded9778ba54b4089e2d58f52793c091bacc7f..6b3b30ce94549c517af59ee1126cf957446a6fca 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) {