While hacking further on tarfs mmap support, I've come across some issues in libpager and I thought I'd fix them. The issues range from plain bugs (such as pager_offer_page () always silently failing) to minor things that could be improved.
The patches are fairly independent, but they touch a lot of the same code, so they may be hard to apply separately. I can regenerate diffs for individual patches if needed. Most of the patches only modify internal workings of libpager; the 3rd patch slightly modifies the public API by adding return codes to various functions that have previously returned void. This should not break any callers though. I have tested that the modified libpager builds without warnings, and tmpfs seems to work as expected with libpager.so replaced. Sergey Bugaev (6): libpager: Fix mixing up success and error libpager: Do not flush in-core pages on offer libpager: Add error handling to various functions libpager: Store pagemapsize as vm_size_t libpager: Fix overallocating pagemap libpager: Use libc heap for pagemap doc/hurd.texi | 16 +++++------ libpager/data-unlock.c | 13 +++++---- libpager/lock-object.c | 32 ++++++++++++++------- libpager/object-terminate.c | 5 ++-- libpager/offer-page.c | 28 +++++++++---------- libpager/pagemap.c | 27 +++++++----------- libpager/pager-attr.c | 56 +++++++++++++++++++++---------------- libpager/pager-flush.c | 21 ++++++++------ libpager/pager-return.c | 21 ++++++++------ libpager/pager-sync.c | 19 +++++++------ libpager/pager.h | 20 ++++++------- libpager/priv.h | 6 ++-- 12 files changed, 143 insertions(+), 121 deletions(-) -- 2.31.1