blob: d4c51bc6bff0401b9c937a0823ed92eb3c3a0185 [file] [log] [blame]
This patch is against Sleepycat's db-4.0.14 release. It's not on the
Sleepycat site. It fixes cases of database corruption Barry (Warsaw)
was seeing, and Barry got it from Sleepycat.
*** db/db_reclaim.c.orig 2002/04/05 16:16:17 11.22
--- db/db_reclaim.c 2002/04/10 18:53:13 11.23
***************
*** 195,202 ****
dbp->log_fileid, p->pgno, &LSN(meta),
PGNO_BASE_MD, &ldbt, meta->free)) != 0)
goto err;
-
LSN(p) = LSN(meta);
if ((ret =
__db_pg_alloc_log(dbp->dbenv,
param->dbc->txn, &LSN(meta), 0,
--- 195,202 ----
dbp->log_fileid, p->pgno, &LSN(meta),
PGNO_BASE_MD, &ldbt, meta->free)) != 0)
goto err;
LSN(p) = LSN(meta);
+
if ((ret =
__db_pg_alloc_log(dbp->dbenv,
param->dbc->txn, &LSN(meta), 0,
***************
*** 206,211 ****
--- 206,213 ----
(void)__TLPUT(param->dbc, metalock);
return (ret);
}
+ LSN(p) = LSN(meta);
+
if ((ret = mpf->put(mpf,
(PAGE *)meta, DB_MPOOL_DIRTY)) != 0) {
(void)__TLPUT(param->dbc, metalock);