* Sebastian Hammer, Adam Dickmeiss
*
* $Log: cfile.c,v $
- * Revision 1.13 1996-04-09 14:48:49 adam
+ * Revision 1.14 1996-04-12 07:01:55 adam
+ * Yet another bug fix (next_block was initialized to 0; now set to 1).
+ *
+ * Revision 1.13 1996/04/09 14:48:49 adam
* Bug fix: offset calculation when using flat files was completely broken.
*
* Revision 1.12 1996/04/09 06:47:28 adam
hash_bytes = cf->head.hash_size * sizeof(int);
cf->head.flat_bucket = cf->head.next_bucket = cf->head.first_bucket =
(hash_bytes+sizeof(cf->head))/HASH_BSIZE + 2;
- cf->head.next_block = 0;
+ cf->head.next_block = 1;
if (wflag)
mf_write (cf->hash_mf, 0, 0, sizeof(cf->head), &cf->head);
cf->array = xmalloc (hash_bytes);
hno += cf->head.next_bucket;
if (hno >= cf->head.flat_bucket)
cf->head.flat_bucket = hno+1;
+ cf->dirty = 1;
mf_write (cf->hash_mf, hno, off, sizeof(int), &vno);
}
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: commit.c,v $
- * Revision 1.8 1996-02-07 14:03:49 adam
+ * Revision 1.9 1996-04-12 07:01:57 adam
+ * Yet another bug fix (next_block was initialized to 0; now set to 1).
+ *
+ * Revision 1.8 1996/02/07 14:03:49 adam
* Work on flat indexed shadow files.
*
* Revision 1.7 1996/02/07 10:08:46 adam
fp = xmalloc (HASH_BSIZE);
for (hno = cf->head.next_bucket; hno < cf->head.flat_bucket; hno++)
{
- mf_read (cf->hash_mf, hno, 0, 0, fp);
+ if (hno == cf->head.next_bucket || hno == cf->head.flat_bucket-1)
+ {
+ for (i = 0; i < (HASH_BSIZE/sizeof(int)); i++)
+ fp[i] = 0;
+ }
+ if (!mf_read (cf->hash_mf, hno, 0, 0, fp))
+ {
+ logf (LOG_WARN, "read index block hno=%d (%d-%d) commit",
+ hno, cf->head.next_bucket,
+ cf->head.flat_bucket-1);
+ }
for (i = 0; i < (HASH_BSIZE/sizeof(int)); i++)
{
if (fp[i])
{
if (!mf_read (cf->block_mf, fp[i], 0, 0, cf->iobuf))
{
- logf (LOG_FATAL, "read commit block at %d (->%d)",
- fp[i], vno);
+ logf (LOG_FATAL, "read data block hno=%d (%d-%d) "
+ "i=%d commit block at %d (->%d)",
+ hno, cf->head.next_bucket, cf->head.flat_bucket-1,
+ i, fp[i], vno);
exit (1);
}
mf_write (cf->rmf, vno, 0, 0, cf->iobuf);