db/db.patch

Wed, 08 Feb 2012 20:07:00 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 08 Feb 2012 20:07:00 +0200
changeset 588
300d43423c2e
permissions
-rw-r--r--

Update version, adapt patch, correct PID writing, correct build on newer
FreeBSD releases, and most importantly introduce new patch to try to
avoid segfault caused by multiple network interfaces with the same (or
no) address. This is common when configuring bridges and tunnels.

michael@121 1 Index: mutex/mut_fcntl.c
michael@121 2 --- mutex/mut_fcntl.c.orig 2008-01-08 21:58:43 +0100
michael@121 3 +++ mutex/mut_fcntl.c 2008-05-26 22:36:45 +0200
michael@121 4 @@ -84,7 +84,7 @@
michael@121 5
michael@121 6 /* Acquire an exclusive kernel lock. */
michael@121 7 k_lock.l_type = F_WRLCK;
michael@121 8 - if (fcntl(env->lockfhp->fd, F_SETLKW, &k_lock))
michael@121 9 + if (fcntl(env->lockfhp->fd, F_SETLKW, &k_lock) == -1)
michael@121 10 goto err;
michael@121 11
michael@121 12 /* If the resource is still available, it's ours. */
michael@121 13 @@ -97,7 +97,7 @@
michael@121 14
michael@121 15 /* Release the kernel lock. */
michael@121 16 k_lock.l_type = F_UNLCK;
michael@121 17 - if (fcntl(env->lockfhp->fd, F_SETLK, &k_lock))
michael@121 18 + if (fcntl(env->lockfhp->fd, F_SETLK, &k_lock) == -1)
michael@121 19 goto err;
michael@121 20
michael@121 21 /*
michael@121 22 Index: os/os_open.c
michael@121 23 --- os/os_open.c.orig 2008-03-26 05:11:35 +0100
michael@121 24 +++ os/os_open.c 2008-05-26 22:36:05 +0200
michael@121 25 @@ -67,7 +67,7 @@
michael@121 26 if (LF_ISSET(DB_OSO_EXCL))
michael@121 27 oflags |= O_EXCL;
michael@121 28
michael@121 29 -#ifdef HAVE_O_DIRECT
michael@121 30 +#if defined(HAVE_O_DIRECT) && defined(__FreeBSD__)
michael@121 31 if (LF_ISSET(DB_OSO_DIRECT))
michael@121 32 oflags |= O_DIRECT;
michael@121 33 #endif

mercurial