commit d9e16d252a4f84a6b30a7837ed6524e2dffec5ec from: rsc date: Fri Jun 11 18:57:32 2004 UTC get this right commit - e750400529eb4e655e206cbfba42b156a03c29c3 commit + d9e16d252a4f84a6b30a7837ed6524e2dffec5ec blob - a9e796adbcfa4673447e8ae29dc2737cab48df23 blob + af621099cb266020a9e202e598db99f1e5c300a1 --- src/lib9/create.c +++ src/lib9/create.c @@ -11,8 +11,9 @@ int p9create(char *path, int mode, ulong perm) { - int fd, cexec, umode, rclose, lock; + int fd, cexec, umode, rclose, lock, rdwr; + rdwr = mode&3; lock = mode&OLOCK; cexec = mode&OCEXEC; rclose = mode&ORCLOSE; @@ -48,7 +49,7 @@ p9create(char *path, int mode, ulong perm) out: if(fd >= 0){ if(lock){ - if(flock(fd, (mode==OREAD) ? LOCK_SH : LOCK_EX) < 0){ + if(flock(fd, (rdwr==OREAD) ? LOCK_SH : LOCK_EX) < 0){ close(fd); return -1; } blob - 5b4935c1a2c5fa3c903bd57fde23dd9d2f2788b1 blob + 526b2a944d654393cdad08b674a79e17b252ec74 --- src/lib9/open.c +++ src/lib9/open.c @@ -11,9 +11,10 @@ int p9open(char *name, int mode) { int cexec, rclose; - int fd, umode, lock; + int fd, umode, lock, rdwr; - umode = mode&3; + rdwr = mode&3; + umode = rdwr; cexec = mode&OCEXEC; rclose = mode&ORCLOSE; lock = mode&OLOCK; @@ -33,7 +34,7 @@ p9open(char *name, int mode) fd = open(name, umode); if(fd >= 0){ if(lock){ - if(flock(fd, (mode==OREAD) ? LOCK_SH : LOCK_EX) < 0){ + if(flock(fd, (rdwr==OREAD) ? LOCK_SH : LOCK_EX) < 0){ close(fd); return -1; }