From: Adam Megacz Date: Tue, 13 Feb 2007 01:34:38 +0000 (+0000) Subject: DEVEL15-lock-mask-64bit-negative-1-for-java-20070212 X-Git-Tag: openafs-devel-1_5_15~9 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=8e71b7159d7059a6201a3348aa5fb992d7c96286;p=packages%2Fo%2Fopenafs.git DEVEL15-lock-mask-64bit-negative-1-for-java-20070212 java sends a 64 bit long -1... which isn't going to be useful most of the time (cherry picked from commit 01882246c8704e9cfad38e8bce71380b843fbbab) --- diff --git a/src/afs/VNOPS/afs_vnop_flock.c b/src/afs/VNOPS/afs_vnop_flock.c index e2eaf8ac6..af942f18f 100644 --- a/src/afs/VNOPS/afs_vnop_flock.c +++ b/src/afs/VNOPS/afs_vnop_flock.c @@ -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) {