wiredtiger/wiredtiger — pull request #439 by keithbostic (2013-01-23 18:00:31+00:00)
Title: evict-empty, second set of changes.

Michael, this change removes the need for the code in your commit 989e2ffbcfe66b096199729cdac7bddc9d8d3aa0 by detecting the empty, instantiated page during the internal page's reconciliation.

This isn't going to be any faster, really, than your change, but it fixes #345 (the fast-delete page leak), and it cleans up internal page reconciliation: the previous code did a lot of testing of the variables set by __rec_child_modify(), and now there's an explicit status passed back. It is still kind of magical, but at least the magic is in one place.

Would you please do the review, and especially check if you agree with me we can simply discard the backing leaf page in __rec_child_deleted()? That's the fix for #345: I'm not sure why I didn't think of it at the time, but I can't think of any reason we'd ever need that leaf page once we decide the backing page isn't visible to any running transaction.