rem: printf("*** hash_delete: tried to delete non-existent block %d:%ld\n",
add: printf("*** hash_delete: tried to delete non-existent block %d:%Ld\n",
context: hash_delete(hash_table *ht, int dev, fs_off_t bnum){    void     *data;    fs_off_t     hash;    hash_ent *he, *prev = NULL;    hash = HASH(dev, bnum) & ht->mask;    he = ht->table[hash];    for(; he != NULL; prev=he,he=he->next) {        if (he->dev == dev && he->bnum == bnum)            break;    }    if (he == NULL) {        printf("*** hash_delete: tried to delete non-existent block %d:%ld\n",               dev, bnum);        return NULL;    }    data = he->data;    if (ht->table[hash] == he)        ht->table[hash] = he->next;    else if (prev)        prev->next = he->next;    else        panic("hash table is inconsistent\n");    free(he);    ht->num_elements--;    return data;}