lockf.c (90039) | lockf.c (177633) |
---|---|
1/*- 2 * Copyright (c) 1997 The NetBSD Foundation, Inc. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to The NetBSD Foundation 6 * by Klaus Klein. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 22 unchanged lines hidden (view full) --- 31 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 32 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 33 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 * POSSIBILITY OF SUCH DAMAGE. 35 */ 36 37/* $NetBSD: lockf.c,v 1.1 1997/12/20 20:23:18 kleink Exp $ */ 38#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 1997 The NetBSD Foundation, Inc. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to The NetBSD Foundation 6 * by Klaus Klein. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 22 unchanged lines hidden (view full) --- 31 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 32 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 33 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 * POSSIBILITY OF SUCH DAMAGE. 35 */ 36 37/* $NetBSD: lockf.c,v 1.1 1997/12/20 20:23:18 kleink Exp $ */ 38#include <sys/cdefs.h> |
39__FBSDID("$FreeBSD: head/lib/libc/gen/lockf.c 90039 2002-02-01 00:57:29Z obrien $"); | 39__FBSDID("$FreeBSD: head/lib/libc/gen/lockf.c 177633 2008-03-26 15:23:12Z dfr $"); |
40 41#include "namespace.h" 42#include <errno.h> 43#include <fcntl.h> 44#include <unistd.h> 45#include "un-namespace.h" 46 47int --- 21 unchanged lines hidden (view full) --- 69 case F_TLOCK: 70 cmd = F_SETLK; 71 fl.l_type = F_WRLCK; 72 break; 73 case F_TEST: 74 fl.l_type = F_WRLCK; 75 if (_fcntl(filedes, F_GETLK, &fl) == -1) 76 return (-1); | 40 41#include "namespace.h" 42#include <errno.h> 43#include <fcntl.h> 44#include <unistd.h> 45#include "un-namespace.h" 46 47int --- 21 unchanged lines hidden (view full) --- 69 case F_TLOCK: 70 cmd = F_SETLK; 71 fl.l_type = F_WRLCK; 72 break; 73 case F_TEST: 74 fl.l_type = F_WRLCK; 75 if (_fcntl(filedes, F_GETLK, &fl) == -1) 76 return (-1); |
77 if (fl.l_type == F_UNLCK || fl.l_pid == getpid()) | 77 if (fl.l_type == F_UNLCK || (fl.l_sysid == 0 && fl.l_pid == getpid())) |
78 return (0); 79 errno = EAGAIN; 80 return (-1); 81 /* NOTREACHED */ 82 default: 83 errno = EINVAL; 84 return (-1); 85 /* NOTREACHED */ 86 } 87 88 return (_fcntl(filedes, cmd, &fl)); 89} | 78 return (0); 79 errno = EAGAIN; 80 return (-1); 81 /* NOTREACHED */ 82 default: 83 errno = EINVAL; 84 return (-1); 85 /* NOTREACHED */ 86 } 87 88 return (_fcntl(filedes, cmd, &fl)); 89} |