|
@@ -1005,6 +1005,9 @@ static int dtSplitUp(tid_t tid,
|
|
|
|
|
|
DT_PUTPAGE(smp);
|
|
|
|
|
|
+ if (!DO_INDEX(ip))
|
|
|
+ ip->i_size = xlen << sbi->l2bsize;
|
|
|
+
|
|
|
goto freeKeyName;
|
|
|
}
|
|
|
|
|
@@ -1055,7 +1058,9 @@ static int dtSplitUp(tid_t tid,
|
|
|
xaddr = addressPXD(pxd) + xlen;
|
|
|
dbFree(ip, xaddr, (s64) n);
|
|
|
}
|
|
|
- }
|
|
|
+ } else if (!DO_INDEX(ip))
|
|
|
+ ip->i_size = lengthPXD(pxd) << sbi->l2bsize;
|
|
|
+
|
|
|
|
|
|
extendOut:
|
|
|
DT_PUTPAGE(smp);
|
|
@@ -1098,6 +1103,9 @@ static int dtSplitUp(tid_t tid,
|
|
|
goto splitOut;
|
|
|
}
|
|
|
|
|
|
+ if (!DO_INDEX(ip))
|
|
|
+ ip->i_size += PSIZE;
|
|
|
+
|
|
|
/*
|
|
|
* propagate up the router entry for the leaf page just split
|
|
|
*
|
|
@@ -2424,6 +2432,9 @@ static int dtDeleteUp(tid_t tid, struct inode *ip,
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
+ if (!DO_INDEX(ip))
|
|
|
+ ip->i_size -= PSIZE;
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|