fix the vcache splitting to work again
Change-Id: I8833fc6655dcb79329835664d38f5330645b45f8
Reviewed-on: http://gerrit.openafs.org/1904
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
/* vgone() is correct, but v_usecount is assumed not
* to be 0, and I suspect that currently our usage ensures that
* in fact it will */
- if (vrefcnt(AFSTOV(tvc)) < 1) {
- vref(AFSTOV(tvc));
+ if (vrefcnt(AFSTOV(avc)) < 1) {
+ vref(AFSTOV(avc));
}
- vn_lock(AFSTOV(tvc), LK_EXCLUSIVE | LK_RETRY); /* !glocked */
+ vn_lock(AFSTOV(avc), LK_EXCLUSIVE | LK_RETRY); /* !glocked */
#endif
vgone(AFSTOV(avc));
* mutual exclusion (an Embryonic flag would suffice).
* -GAW */
afs_warn("afs_NewVCache: lost the race\n");
- return (avc);
+ return;
}
avc->v = vp;
avc->v->v_data = avc;
VREFCOUNT_SET(tvc, 1); /* us */
#endif
+#if defined (AFS_FBSD_ENV)
+ if (tvc->f.states & CVInit)
+#endif
afs_PostPopulateVCache(tvc, afid, seq);
return tvc;