about summary refs log tree commit diff
path: root/db2/common/db_apprec.c
diff options
context:
space:
mode:
Diffstat (limited to 'db2/common/db_apprec.c')
-rw-r--r--db2/common/db_apprec.c29
1 files changed, 14 insertions, 15 deletions
diff --git a/db2/common/db_apprec.c b/db2/common/db_apprec.c
index ac0176d70f..188c6b9f95 100644
--- a/db2/common/db_apprec.c
+++ b/db2/common/db_apprec.c
@@ -11,7 +11,7 @@
 static const char copyright[] =
 "@(#) Copyright (c) 1997\n\
 	Sleepycat Software Inc.  All rights reserved.\n";
-static const char sccsid[] = "@(#)db_apprec.c	10.18 (Sleepycat) 9/30/97";
+static const char sccsid[] = "@(#)db_apprec.c	10.19 (Sleepycat) 11/23/97";
 #endif
 
 #ifndef NO_SYSTEM_INCLUDES
@@ -72,10 +72,8 @@ __db_apprec(dbenv, flags)
 	if (LF_ISSET(DB_RECOVER_FATAL))
 		first_flag = DB_FIRST;
 	else {
-		if ((ret = __log_findckp(lp, &lsn)) == DB_NOTFOUND) {
-			F_SET(lp, is_thread);
-			return (0);
-		}
+		if ((ret = __log_findckp(lp, &lsn)) == DB_NOTFOUND)
+			goto out;
 		first_flag = DB_SET;
 	}
 
@@ -88,7 +86,7 @@ __db_apprec(dbenv, flags)
 			    (u_long)lsn.file, (u_long)lsn.offset);
 		else
 			__db_err(dbenv, "Retrieving first LSN");
-		goto err;
+		goto out;
 	}
 
 	first_lsn = lsn;
@@ -99,7 +97,7 @@ __db_apprec(dbenv, flags)
 		if ((ret =
 		    log_get(dbenv->lg_info, &lsn, &data, DB_NEXT)) != 0) {
 			if (ret != DB_NOTFOUND)
-				goto err;
+				goto out;
 			break;
 		}
 	}
@@ -123,7 +121,7 @@ __db_apprec(dbenv, flags)
 			goto msgerr;
 	}
 	if (ret != 0 && ret != DB_NOTFOUND)
-		goto err;
+		goto out;
 
 	for (ret = log_get(lp, &lsn, &data, DB_NEXT);
 	    ret == 0; ret = log_get(lp, &lsn, &data, DB_NEXT)) {
@@ -134,7 +132,7 @@ __db_apprec(dbenv, flags)
 			goto msgerr;
 	}
 	if (ret != DB_NOTFOUND)
-		goto err;
+		goto out;
 
 	/* Now close all the db files that are open. */
 	__log_close_files(lp);
@@ -148,7 +146,7 @@ __db_apprec(dbenv, flags)
 	dbenv->tx_info->region->last_ckp = ckp_lsn;
 	dbenv->tx_info->region->time_ckp = (u_int32_t)now;
 	if ((ret = txn_checkpoint(dbenv->tx_info, 0, 0)) != 0)
-		goto err;
+		goto out;
 
 	if (dbenv->db_verbose) {
 		__db_err(lp->dbenv, "Recovery complete at %s", ctime(&now));
@@ -160,12 +158,13 @@ __db_apprec(dbenv, flags)
 		    (u_long)dbenv->tx_info->region->last_ckp.offset);
 	}
 
-	F_SET(lp, is_thread);
-	return (0);
+	if (0) {
+msgerr:		__db_err(dbenv, "Recovery function for LSN %lu %lu failed",
+		    (u_long)lsn.file, (u_long)lsn.offset);
+	}
 
-msgerr:	__db_err(dbenv, "Recovery function for LSN %lu %lu failed",
-	    (u_long)lsn.file, (u_long)lsn.offset);
+out:	F_SET(lp, is_thread);
+	__db_txnlist_end(txninfo);
 
-err:	F_SET(lp, is_thread);
 	return (ret);
 }