tget this right - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit d9e16d252a4f84a6b30a7837ed6524e2dffec5ec
 (DIR) parent e750400529eb4e655e206cbfba42b156a03c29c3
 (HTM) Author: rsc <devnull@localhost>
       Date:   Fri, 11 Jun 2004 18:57:32 +0000
       
       get this right
       
       Diffstat:
         M src/lib9/create.c                   |       5 +++--
         M src/lib9/open.c                     |       7 ++++---
       
       2 files changed, 7 insertions(+), 5 deletions(-)
       ---
 (DIR) diff --git a/src/lib9/create.c b/src/lib9/create.c
       t@@ -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;
       t@@ -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;
                                }
 (DIR) diff --git a/src/lib9/open.c b/src/lib9/open.c
       t@@ -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;
       t@@ -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;
                                }