Generalize ef_extend() to non-file-backed tables
authorMarkus Armbruster <armbru@pond.sub.org>
Thu, 21 Feb 2008 20:12:58 +0000 (21:12 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 24 Feb 2008 07:40:05 +0000 (08:40 +0100)
commitd4ac7d94b2aa4ee7d98f61c339a4fde40d9c254e
tree1a36a634c659545e0354e19b5611c6cff9bc7199
parent642c11eb6419e6ce8acabc4d7ebf0124f3bd702c
Generalize ef_extend() to non-file-backed tables

ef_extend() extended the file bypassing the cache, which screws up the
cache if it's EFF_MEM.  It fixed that by closing and reopening the
table.  Cheesy, and worked only for file-backed tables.

Rewrite ef_extend() to remap the cache properly for EFF_MEM.  While
there, simplify the !EFF_MEM case: steal a cache slot instead of
allocating a buffer.

Factor cache mapping out of ef_open() and ef_extend() into new
ef_remap_cache().
src/lib/common/file.c