+openafs (1.4.8.dfsg1-3) unstable; urgency=low
+
+ * Apply upstream CVS deltas:
+ - STABLE14-cbr-free-what-you-alloc-20090325: dequeue items in the same
+ way they were allocated.
+ - STABLE14-shutdown-vcache-avoid-null-deref-20090324: avoid oops on
+ shutdown. (LP: #333197)
+
+ -- Russ Allbery <rra@debian.org> Fri, 27 Mar 2009 07:48:11 -0700
+
openafs (1.4.8.dfsg1-2) unstable; urgency=low
* Make openafs-modules-source architecture-specific (arch: any instead
* held, so we don't have to worry about blocking in osi_Alloc.
*/
static struct afs_cbr *afs_cbrSpace = 0;
+/* if alloc limit below changes, fix me! */
+static struct afs_cbr *afs_cbrHeads[2];
struct afs_cbr *
afs_AllocCBR(void)
{
}
tsp[AFS_NCBRS - 1].next = 0;
afs_cbrSpace = tsp;
+ afs_cbrHeads[afs_stats_cmperf.CallBackAlloced] = tsp;
afs_stats_cmperf.CallBackAlloced++;
}
}
*/
{
- register struct afs_q *tq, *uq;
+ register struct afs_q *tq, *uq = NULL;
register struct vcache *tvc;
for (tq = VLRU.prev; tq != &VLRU; tq = uq) {
tvc = QTOV(tq);
tvc->linkData = 0;
}
- afs_FreeAllAxs(&(tvc->Access));
+ if (tvc->Access)
+ afs_FreeAllAxs(&(tvc->Access));
}
afs_vhashT[i] = 0;
}
/*
* Free any leftover callback queue
*/
- for (tsp = afs_cbrSpace; tsp; tsp = nsp) {
- nsp = tsp->next;
+ for (i = 0; i < afs_stats_cmperf.CallBackAlloced; i++) {
+ tsp = afs_cbrHeads[i];
+ afs_cbrHeads[i] = 0;
afs_osi_Free((char *)tsp, AFS_NCBRS * sizeof(struct afs_cbr));
}
afs_cbrSpace = 0;