Fix bug where if the fcntl-style lock succeeded, we should return
authorTheodore Tso <tytso@mit.edu>
Fri, 13 Nov 1998 20:33:59 +0000 (20:33 +0000)
committerTheodore Tso <tytso@mit.edu>
Fri, 13 Nov 1998 20:33:59 +0000 (20:33 +0000)
immediately instead of trying to do flock-style locking.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@11024 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/krb5/os/ChangeLog
src/lib/krb5/os/lock_file.c

index c8ea14f65353f8e2d5f62c05bb21a6af06773257..a1d7fa027618aedca81101e980d088701b020f84 100644 (file)
@@ -1,3 +1,9 @@
+1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
+
+       * lock_file.c (krb5_lock_file): Fix bug where if the fcntl-style
+               lock succeeded, we should return immediately instead of
+               trying to do flock-style locking.
+
 1998-10-31  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * lock_file.c (krb5_lock_file): Move the flock() fallback code
index eb8e761837e79dcd7596d35f107448fae980cc0b..79c1f97f18126093d8210e231887ae2a6b572e2c 100644 (file)
 
 #include <errno.h>
 
-#ifdef POSIX_FILE_LOCKS
+#ifdef HAVE_FCNTL_H
 #include <fcntl.h>
 #endif
 
+#if defined(HAVE_FCNTL_H) && defined(F_SETLKW) && defined(F_RDLCK)
+#define POSIX_FILE_LOCKS
+#endif
+
 #ifdef HAVE_FLOCK
 #ifndef sysvimp
 #include <sys/file.h>
@@ -114,7 +118,8 @@ krb5_lock_file(context, fd, mode)
        if (errno != EINVAL)    /* Fall back to flock if we get EINVAL */
            return(errno);
        retval = errno;
-    }
+    } else
+           return 0;           /* We succeeded.  Yay. */
 #endif
     
 #ifdef HAVE_FLOCK