[INN-COMMITTERS] inn/storage/tradindexed (tdx-group.c)

Russ Allbery Russ_Allbery at isc.org
Sun Sep 8 22:31:42 UTC 2002


    Date: Sunday, September 8, 2002 @ 15:31:42
  Author: rra
    Path: /dist1/cvs/isc/inn/inn/storage/tradindexed

Modified: tdx-group.c

When reusing a cached set of open data files and having to reopen them
because the index inode changed (such as during expire), we didn't update
our understanding of the article base, resulting in overview entries
being recorded at the wrong offset in groups that were cached across an
expire boundary.  Fixed.

The calculation of the offset for locks of individual groups was being
done incorrectly, and as a result we were instead locking random sections
of the group header.  (Subtraction of two pointers does not yield byte
offsets unless they're char * pointers.)  This wasn't causing serious
problems, since we were making the same mistake consistently everywhere,
but we were losing concurrency.

When finishing a rebuild, be somewhat more careful about the order in which
we change things in the master index so that we always change the
indexinode last.


-------------+
 tdx-group.c |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)


More information about the inn-committers mailing list