37 lines
1.1 KiB
Plaintext
37 lines
1.1 KiB
Plaintext
|
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);
|