]> git.saurik.com Git - apple/libc.git/blobdiff - gen/FreeBSD/lockf.c
Libc-763.11.tar.gz
[apple/libc.git] / gen / FreeBSD / lockf.c
index 375b2ce4d50e0c85c4d9c09c8d0a357d93748ca8..3581270e7c0aa0942fec4daa196f19bd702115c9 100644 (file)
@@ -1,3 +1,4 @@
+/*     $NetBSD: lockf.c,v 1.3 2008/04/28 20:22:59 martin Exp $ */
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
  * All rights reserved.
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *        This product includes software developed by the NetBSD
- *        Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
@@ -34,9 +28,8 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-/*     $NetBSD: lockf.c,v 1.1 1997/12/20 20:23:18 kleink Exp $ */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/gen/lockf.c,v 1.8 2002/02/01 00:57:29 obrien Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/gen/lockf.c,v 1.10 2009/03/04 01:01:26 delphij Exp $");
 
 #include "namespace.h"
 #include <errno.h>
@@ -45,10 +38,7 @@ __FBSDID("$FreeBSD: src/lib/libc/gen/lockf.c,v 1.8 2002/02/01 00:57:29 obrien Ex
 #include "un-namespace.h"
 
 int
-lockf(filedes, function, size)
-       int filedes;
-       int function;
-       off_t size;
+lockf(int filedes, int function, off_t size)
 {
        struct flock fl;
        int cmd;
@@ -74,7 +64,7 @@ lockf(filedes, function, size)
                fl.l_type = F_WRLCK;
                if (_fcntl(filedes, F_GETLK, &fl) == -1)
                        return (-1);
-               if (fl.l_type == F_UNLCK || fl.l_pid == getpid())
+               if (fl.l_type == F_UNLCK || (fl.l_sysid == 0 && fl.l_pid == getpid()))
                        return (0);
                errno = EAGAIN;
                return (-1);