Tim Peters | 78e35f9 | 2002-11-22 20:00:34 +0000 | [diff] [blame] | 1 | This patch is against Sleepycat's db-4.0.14 release. It's not on the |
| 2 | Sleepycat site. It fixes cases of database corruption Barry (Warsaw) |
| 3 | was seeing, and Barry got it from Sleepycat. |
| 4 | |
| 5 | *** db/db_reclaim.c.orig 2002/04/05 16:16:17 11.22 |
| 6 | --- db/db_reclaim.c 2002/04/10 18:53:13 11.23 |
| 7 | *************** |
| 8 | *** 195,202 **** |
| 9 | dbp->log_fileid, p->pgno, &LSN(meta), |
| 10 | PGNO_BASE_MD, &ldbt, meta->free)) != 0) |
| 11 | goto err; |
| 12 | - |
| 13 | LSN(p) = LSN(meta); |
| 14 | if ((ret = |
| 15 | __db_pg_alloc_log(dbp->dbenv, |
| 16 | param->dbc->txn, &LSN(meta), 0, |
| 17 | --- 195,202 ---- |
| 18 | dbp->log_fileid, p->pgno, &LSN(meta), |
| 19 | PGNO_BASE_MD, &ldbt, meta->free)) != 0) |
| 20 | goto err; |
| 21 | LSN(p) = LSN(meta); |
| 22 | + |
| 23 | if ((ret = |
| 24 | __db_pg_alloc_log(dbp->dbenv, |
| 25 | param->dbc->txn, &LSN(meta), 0, |
| 26 | *************** |
| 27 | *** 206,211 **** |
| 28 | --- 206,213 ---- |
| 29 | (void)__TLPUT(param->dbc, metalock); |
| 30 | return (ret); |
| 31 | } |
| 32 | + LSN(p) = LSN(meta); |
| 33 | + |
| 34 | if ((ret = mpf->put(mpf, |
| 35 | (PAGE *)meta, DB_MPOOL_DIRTY)) != 0) { |
| 36 | (void)__TLPUT(param->dbc, metalock); |