diff options
author | Xin LI <delphij@FreeBSD.org> | 2008-10-08 09:41:43 +0000 |
---|---|---|
committer | Xin LI <delphij@FreeBSD.org> | 2008-10-08 09:41:43 +0000 |
commit | c36a7fe5ce15ce465474a76816093331308dd9bc (patch) | |
tree | b66893ddeb1a69a9235260085991ff68603e94cb /databases/db47 | |
parent | a4a1314486b912f61a626edae2c413cba6a59268 (diff) |
Notes
Diffstat (limited to 'databases/db47')
-rw-r--r-- | databases/db47/Makefile | 8 | ||||
-rw-r--r-- | databases/db47/distinfo | 3 | ||||
-rw-r--r-- | databases/db47/files/patch-lock::lock.c | 42 |
3 files changed, 52 insertions, 1 deletions
diff --git a/databases/db47/Makefile b/databases/db47/Makefile index 13e339678503..2445b46c9872 100644 --- a/databases/db47/Makefile +++ b/databases/db47/Makefile @@ -6,7 +6,7 @@ # PORTNAME= db47 -PORTVERSION= 4.7.25.0 +PORTVERSION= 4.7.25.1 CATEGORIES= databases MASTER_SITES= http://download-west.oracle.com/berkeley-db/ \ http://download-east.oracle.com/berkeley-db/ \ @@ -15,6 +15,12 @@ PKGNAMEPREFIX?= DISTNAME= db-${PORTVERSION:R} DIST_SUBDIR= bdb +PATCH_SITES= http://www.oracle.com/technology/products/berkeley-db/db/update/${PORTVERSION:R}/ +PATCHFILES= patch.4.7.25.1 +PATCH_DIST_STRIP= -d .. --ignore-whitespace +# * patch.4.7.25.1: ----------------------------------------------------------- +# # [#16406] Replication clients should be able to open a sequence. + # I allow matthias.andree@gmx.de and all freebsd committer to do changes # to this package. diff --git a/databases/db47/distinfo b/databases/db47/distinfo index b85332845c1e..f42260952182 100644 --- a/databases/db47/distinfo +++ b/databases/db47/distinfo @@ -1,3 +1,6 @@ MD5 (bdb/db-4.7.25.tar.gz) = ec2b87e833779681a0c3a814aa71359e SHA256 (bdb/db-4.7.25.tar.gz) = f14fd96dd38915a1d63dcb94a63fbb8092334ceba6b5060760427096f631263e SIZE (bdb/db-4.7.25.tar.gz) = 13124129 +MD5 (bdb/patch.4.7.25.1) = 5fdf101259e5164dea1c8c86214fde38 +SHA256 (bdb/patch.4.7.25.1) = e91590af872705efc34414afb702abc630a75c55ba61570dca2216c783e0a83a +SIZE (bdb/patch.4.7.25.1) = 2072 diff --git a/databases/db47/files/patch-lock::lock.c b/databases/db47/files/patch-lock::lock.c new file mode 100644 index 000000000000..33f8066ca0dd --- /dev/null +++ b/databases/db47/files/patch-lock::lock.c @@ -0,0 +1,42 @@ +--- ../lock/lock.c.orig 2008-05-07 05:27:35.000000000 -0700 ++++ ../lock/lock.c 2008-09-26 11:07:15.000000000 -0700 +@@ -1274,10 +1274,12 @@ + SH_TAILQ_REMOVE( + <->obj_tab[obj_ndx], sh_obj, links, __db_lockobj); + if (sh_obj->lockobj.size > sizeof(sh_obj->objdata)) { +- LOCK_REGION_LOCK(env); ++ if (region->part_t_size != 1) ++ LOCK_REGION_LOCK(env); + __env_alloc_free(<->reginfo, + SH_DBT_PTR(&sh_obj->lockobj)); +- LOCK_REGION_UNLOCK(env); ++ if (region->part_t_size != 1) ++ LOCK_REGION_UNLOCK(env); + } + SH_TAILQ_INSERT_HEAD( + &FREE_OBJS(lt, part_id), sh_obj, links, __db_lockobj); +@@ -1467,15 +1469,21 @@ + if (obj->size <= sizeof(sh_obj->objdata)) + p = sh_obj->objdata; + else { +- LOCK_REGION_LOCK(env); ++ /* ++ * If we have only one partition, the region is locked. ++ */ ++ if (region->part_t_size != 1) ++ LOCK_REGION_LOCK(env); + if ((ret = + __env_alloc(<->reginfo, obj->size, &p)) != 0) { + __db_errx(env, + "No space for lock object storage"); +- LOCK_REGION_UNLOCK(env); ++ if (region->part_t_size != 1) ++ LOCK_REGION_UNLOCK(env); + goto err; + } +- LOCK_REGION_UNLOCK(env); ++ if (region->part_t_size != 1) ++ LOCK_REGION_UNLOCK(env); + } + + memcpy(p, obj->data, obj->size); |