Always call vn_finished_write after vn_start_write was called. All
occurences of 'goto done' after vn_start_write invocation were cleaning up incompletely.
This commit is contained in:
parent
3537c363d9
commit
e795b7939d
@ -614,8 +614,8 @@ vtryrecycle(struct vnode *vp)
|
||||
* Don't recycle if its filesystem is being suspended.
|
||||
*/
|
||||
if (vn_start_write(vp, &vnmp, V_NOWAIT) != 0) {
|
||||
error = EBUSY;
|
||||
goto done;
|
||||
VOP_UNLOCK(vp, 0, td);
|
||||
return (EBUSY);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -687,6 +687,7 @@ vtryrecycle(struct vnode *vp)
|
||||
return (0);
|
||||
done:
|
||||
VOP_UNLOCK(vp, 0, td);
|
||||
vn_finished_write(vnmp);
|
||||
return (error);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user