-Index: dbinc/db.in\r
-===================================================================\r
-RCS file: /var/CVSROOT/bdb42/dbinc/db.in,v\r
-retrieving revision 1.1.1.1\r
-retrieving revision 1.2\r
-diff -u -r1.1.1.1 -r1.2\r
---- dbinc/db.in 25 Nov 2003 21:58:02 -0000 1.1.1.1\r
-+++ dbinc/db.in 17 Jul 2004 16:07:23 -0000 1.2\r
-@@ -839,6 +839,7 @@\r
- #define TXN_NOWAIT 0x040 /* Do not wait on locks. */\r
- #define TXN_RESTORED 0x080 /* Transaction has been restored. */\r
- #define TXN_SYNC 0x100 /* Sync on prepare and commit. */\r
-+#define TXN_NOLOG 0x200 /* Do not log this transaction. */\r
- u_int32_t flags;\r
- };\r
- \r
-Index: txn/txn.c\r
-===================================================================\r
-RCS file: /var/CVSROOT/bdb42/txn/txn.c,v\r
-retrieving revision 1.1.1.2\r
-retrieving revision 1.2\r
-diff -u -r1.1.1.2 -r1.2\r
---- txn/txn.c 17 Dec 2003 21:43:53 -0000 1.1.1.2\r
-+++ txn/txn.c 17 Jul 2004 16:07:27 -0000 1.2\r
-@@ -127,7 +127,7 @@\r
- if ((ret = __db_fchk(dbenv,\r
- "txn_begin", flags,\r
- DB_DIRTY_READ | DB_TXN_NOWAIT |\r
-- DB_TXN_NOSYNC | DB_TXN_SYNC)) != 0)\r
-+ DB_TXN_NOSYNC | DB_TXN_SYNC | DB_TXN_NOT_DURABLE)) != 0)\r
- return (ret);\r
- if ((ret = __db_fcchk(dbenv,\r
- "txn_begin", flags, DB_TXN_NOSYNC, DB_TXN_SYNC)) != 0)\r
-@@ -193,6 +193,8 @@\r
- F_SET(txn, TXN_SYNC);\r
- if (LF_ISSET(DB_TXN_NOWAIT))\r
- F_SET(txn, TXN_NOWAIT);\r
-+ if (LF_ISSET(DB_TXN_NOT_DURABLE))\r
-+ F_SET(txn, TXN_NOLOG);\r
- \r
- if ((ret = __txn_begin_int(txn, 0)) != 0)\r
- goto err;\r
-@@ -328,7 +330,7 @@\r
- * We should set this value when we write the first log record, not\r
- * here.\r
- */\r
-- if (DBENV_LOGGING(dbenv))\r
-+ if (DBENV_LOGGING(dbenv) && !F_ISSET(txn, TXN_NOLOG))\r
- __log_txn_lsn(dbenv, &begin_lsn, NULL, NULL);\r
- else\r
- ZERO_LSN(begin_lsn);\r
+This patch is intended to be applied to Berkeley DB 4.2 and,
+if applied, will automatically be used by slapd(8) back-bdb/hdb.
+
+
+Index: dbinc/db.in
+===================================================================
+RCS file: /var/CVSROOT/bdb42/dbinc/db.in,v
+retrieving revision 1.1.1.1
+retrieving revision 1.2
+diff -u -r1.1.1.1 -r1.2
+--- dbinc/db.in 25 Nov 2003 21:58:02 -0000 1.1.1.1
++++ dbinc/db.in 17 Jul 2004 16:07:23 -0000 1.2
+@@ -839,6 +839,7 @@
+ #define TXN_NOWAIT 0x040 /* Do not wait on locks. */
+ #define TXN_RESTORED 0x080 /* Transaction has been restored. */
+ #define TXN_SYNC 0x100 /* Sync on prepare and commit. */
++#define TXN_NOLOG 0x200 /* Do not log this transaction. */
+ u_int32_t flags;
+ };
+
+Index: txn/txn.c
+===================================================================
+RCS file: /var/CVSROOT/bdb42/txn/txn.c,v
+retrieving revision 1.1.1.2
+retrieving revision 1.2
+diff -u -r1.1.1.2 -r1.2
+--- txn/txn.c 17 Dec 2003 21:43:53 -0000 1.1.1.2
++++ txn/txn.c 17 Jul 2004 16:07:27 -0000 1.2
+@@ -127,7 +127,7 @@
+ if ((ret = __db_fchk(dbenv,
+ "txn_begin", flags,
+ DB_DIRTY_READ | DB_TXN_NOWAIT |
+- DB_TXN_NOSYNC | DB_TXN_SYNC)) != 0)
++ DB_TXN_NOSYNC | DB_TXN_SYNC | DB_TXN_NOT_DURABLE)) != 0)
+ return (ret);
+ if ((ret = __db_fcchk(dbenv,
+ "txn_begin", flags, DB_TXN_NOSYNC, DB_TXN_SYNC)) != 0)
+@@ -193,6 +193,8 @@
+ F_SET(txn, TXN_SYNC);
+ if (LF_ISSET(DB_TXN_NOWAIT))
+ F_SET(txn, TXN_NOWAIT);
++ if (LF_ISSET(DB_TXN_NOT_DURABLE))
++ F_SET(txn, TXN_NOLOG);
+
+ if ((ret = __txn_begin_int(txn, 0)) != 0)
+ goto err;
+@@ -328,7 +330,7 @@
+ * We should set this value when we write the first log record, not
+ * here.
+ */
+- if (DBENV_LOGGING(dbenv))
++ if (DBENV_LOGGING(dbenv) && !F_ISSET(txn, TXN_NOLOG))
+ __log_txn_lsn(dbenv, &begin_lsn, NULL, NULL);
+ else
+ ZERO_LSN(begin_lsn);