/* This block was an InoIdx block but has just become a real
* index block, so hash it. There cannot be a block with this
* address already as we haven't increased the inode depth yet.
+ * Alternately this block was recently split off another,
+ * and has now been incorporated, so a lookup might need
+ * to find it. So it better be in the hash table.
*/
struct hlist_head *head =
&hash_table[ihash(ib->b.inode, ib->b.fileaddr, ib->depth)];
struct block, siblings);
LAFS_BUG(b->siblings.prev == &b->parent->children, b);
putref(pb, MKREF(primary));
+ lafs_hash_iblock(iblk(b));
}
putref(b, MKREF(uninc));
return cr;
new->b.parent = ib->b.parent;
(void)getiref(new->b.parent, MKREF(child));
new->b.inode = ib->b.inode;
- lafs_hash_iblock(new);
LAFS_BUG(!test_bit(B_Pinned, &ib->b.flags), &ib->b);
set_phase(&new->b, test_bit(B_Phase1, &ib->b.flags));
return 2;
new->b.parent = ib->b.parent;
(void)getiref(new->b.parent, MKREF(child));
new->b.inode = ib->b.inode;
- lafs_hash_iblock(new);
LAFS_BUG(!test_bit(B_Pinned, &ib->b.flags), &ib->b);
set_phase(&new->b, test_bit(B_Phase1, &ib->b.flags));