mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 23:10:58 +00:00
STABLE14-darwin-finalizevnode-get-vnode-inside-lock-20071017
FIXES 41550
the ovp initialization should happen while we have the vnode locked, regardless.
(cherry picked from commit 49630f2957
)
This commit is contained in:
parent
87cebf4918
commit
ce7c271652
@ -2061,12 +2061,13 @@ afs_darwin_getnewvnode(struct vcache *avc)
|
|||||||
Don't touch! */
|
Don't touch! */
|
||||||
int
|
int
|
||||||
afs_darwin_finalizevnode(struct vcache *avc, struct vnode *dvp, struct componentname *cnp, int isroot) {
|
afs_darwin_finalizevnode(struct vcache *avc, struct vnode *dvp, struct componentname *cnp, int isroot) {
|
||||||
vnode_t ovp = AFSTOV(avc);
|
vnode_t ovp;
|
||||||
vnode_t nvp;
|
vnode_t nvp;
|
||||||
int error;
|
int error;
|
||||||
struct vnode_fsparam par;
|
struct vnode_fsparam par;
|
||||||
AFS_GLOCK();
|
AFS_GLOCK();
|
||||||
ObtainWriteLock(&avc->lock,325);
|
ObtainWriteLock(&avc->lock,325);
|
||||||
|
ovp = AFSTOV(avc);
|
||||||
if (!(avc->states & CDeadVnode) && vnode_vtype(ovp) != VNON) {
|
if (!(avc->states & CDeadVnode) && vnode_vtype(ovp) != VNON) {
|
||||||
ReleaseWriteLock(&avc->lock);
|
ReleaseWriteLock(&avc->lock);
|
||||||
AFS_GUNLOCK();
|
AFS_GUNLOCK();
|
||||||
|
Loading…
Reference in New Issue
Block a user