diff options
author | mckusick <mckusick@FreeBSD.org> | 2002-02-02 01:49:18 +0000 |
---|---|---|
committer | mckusick <mckusick@FreeBSD.org> | 2002-02-02 01:49:18 +0000 |
commit | ca79facdf4005810aaa1b757a00e3a8428d8cfd8 (patch) | |
tree | 4b9bff2b22a1824b424f5f96db6c16813f5dceeb /README | |
parent | a7a7cb3eff86ba390846478e2d9618a87dc8dcb3 (diff) | |
download | FreeBSD-src-ca79facdf4005810aaa1b757a00e3a8428d8cfd8.zip FreeBSD-src-ca79facdf4005810aaa1b757a00e3a8428d8cfd8.tar.gz |
In the routines vrele() and vput(), we must lock the vnode and
call VOP_INACTIVE before placing the vnode back on the free list.
Otherwise there is a race condition on SMP machines between
getnewvnode() locking the vnode to reclaim it and vrele()
locking the vnode to inactivate it. This window of vulnerability
becomes exaggerated in the presence of filesystems that have
been suspended as the inactive routine may need to temporarily
release the lock on the vnode to avoid deadlock with the syncer
process.
Diffstat (limited to 'README')
0 files changed, 0 insertions, 0 deletions