Author: arekm                        Date: Tue Sep  2 13:55:54 2008 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- from upstream

---- Files affected:
SOURCES:
   patch.4.7.25.1 (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/patch.4.7.25.1
diff -u /dev/null SOURCES/patch.4.7.25.1:1.1
--- /dev/null   Tue Sep  2 15:55:54 2008
+++ SOURCES/patch.4.7.25.1      Tue Sep  2 15:55:48 2008
@@ -0,0 +1,75 @@
+*** sequence/sequence.c.orig   2008-05-05 13:25:09.000000000 -0700
+--- sequence/sequence.c        2008-08-15 09:58:46.000000000 -0700
+***************
+*** 187,193 ****
+       if ((ret = __db_get_flags(dbp, &tflags)) != 0)
+               goto err;
+  
+!      if (DB_IS_READONLY(dbp)) {
+               ret = __db_rdonly(dbp->env, "DB_SEQUENCE->open");
+               goto err;
+       }
+--- 187,197 ----
+       if ((ret = __db_get_flags(dbp, &tflags)) != 0)
+               goto err;
+  
+!      /*
+!       * We can let replication clients open sequences, but must
+!       * check later that they do not update them.
+!       */
+!      if (F_ISSET(dbp, DB_AM_RDONLY)) {
+               ret = __db_rdonly(dbp->env, "DB_SEQUENCE->open");
+               goto err;
+       }
+***************
+*** 244,249 ****
+--- 248,258 ----
+               if ((ret != DB_NOTFOUND && ret != DB_KEYEMPTY) ||
+                   !LF_ISSET(DB_CREATE))
+                       goto err;
++              if (IS_REP_CLIENT(env) &&
++                  !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
++                      ret = __db_rdonly(env, "DB_SEQUENCE->open");
++                      goto err;
++              }
+               ret = 0;
+  
+               rp = &seq->seq_record;
+***************
+*** 296,302 ****
+        */
+       rp = seq->seq_data.data;
+       if (rp->seq_version == DB_SEQUENCE_OLDVER) {
+! oldver:              rp->seq_version = DB_SEQUENCE_VERSION;
+               if (!F_ISSET(env, ENV_LITTLEENDIAN)) {
+                       if (IS_DB_AUTO_COMMIT(dbp, txn)) {
+                               if ((ret =
+--- 305,316 ----
+        */
+       rp = seq->seq_data.data;
+       if (rp->seq_version == DB_SEQUENCE_OLDVER) {
+! oldver:              if (IS_REP_CLIENT(env) &&
+!                  !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
+!                      ret = __db_rdonly(env, "DB_SEQUENCE->open");
+!                      goto err;
+!              }
+!              rp->seq_version = DB_SEQUENCE_VERSION;
+               if (!F_ISSET(env, ENV_LITTLEENDIAN)) {
+                       if (IS_DB_AUTO_COMMIT(dbp, txn)) {
+                               if ((ret =
+***************
+*** 707,712 ****
+--- 721,733 ----
+  
+       MUTEX_LOCK(env, seq->mtx_seq);
+  
++      if (handle_check && IS_REP_CLIENT(env) &&
++          !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
++              ret = __db_rdonly(env, "DB_SEQUENCE->get");
++              goto err;
++      }
++ 
++ 
+       if (rp->seq_min + delta > rp->seq_max) {
+               __db_errx(env, "Sequence overflow");
+               ret = EINVAL;
================================================================
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to