]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/commit
MFC r211213:
authorkib <kib@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 13 Sep 2010 20:29:09 +0000 (20:29 +0000)
committerkib <kib@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 13 Sep 2010 20:29:09 +0000 (20:29 +0000)
commit1c954753afe981e8096a306620309d9c4ea71141
treef62ee05713d2905a564c930242e730db3a3f7c38
parent95a2d53e02062c3dd1130a33658ed4b907816cfc
MFC r211213:
The buffers b_vflags field is not always properly protected by
bufobj lock. If b_bufobj is not NULL, then bufobj lock should be
held when manipulating the flags. Not doing this sometimes leaves
BV_BKGRDINPROG to be erronously set, causing softdep' getdirtybuf() to
stuck indefinitely in "getbuf" sleep, waiting for background write to
finish which is not actually performed.

Add BO_LOCK() in the cases where it was missed.

git-svn-id: svn://svn.freebsd.org/base/stable/8@212583 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/kern/vfs_bio.c
sys/kern/vfs_subr.c