It looks like I had applied a patch to the code twice, and both succeeded.
rp->header.freecnt = sp->header.freecnt + rp->header.maxslot - n;
- /*
- * Update directory index table for entries now in right page
- */
- if ((rp->header.flag & BT_LEAF) && DO_INDEX(ip)) {
- metapage_t *mp = 0;
- ldtentry_t *ldtentry;
-
- stbl = DT_GETSTBL(rp);
- for (n = 0; n < rp->header.nextindex; n++) {
- ldtentry = (ldtentry_t *) & rp->slot[stbl[n]];
- modify_index(tid, ip, le32_to_cpu(ldtentry->index),
- rbn, n, &mp);
- }
- if (mp)
- release_metapage(mp);
- }
/*
* Update directory index table for entries now in right page
*/
filp->f_pos = -1;
return 0;
}
- if (p->header.flag & BT_INTERNAL) {
- jERROR(1,("jfs_readdir: bad index table\n"));
- DT_PUTPAGE(mp);
- filp->f_pos = -1;
- return 0;
- }
} else {
if (dir_index == 0) {
/*