Fix mount interlock oversights from the previous change in r234386.

Reported by:	dougb
Submitted by:	Mateusz Guzik <mjguzik at gmail com>
Reviewed by:	Kirk McKusick
Tested by:	pho
This commit is contained in:
Sergey Kandaurov 2012-05-10 20:28:33 +00:00
parent 83c476cd09
commit 7d5f5d83f5

View File

@ -830,7 +830,6 @@ ext2_sync(struct mount *mp, int waitfor)
/*
* Write back each (modified) inode.
*/
MNT_ILOCK(mp);
loop:
MNT_VNODE_FOREACH_ALL(vp, mp, mvp) {
if (vp->v_type == VNON) {
@ -847,7 +846,6 @@ ext2_sync(struct mount *mp, int waitfor)
}
error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK, td);
if (error) {
MNT_ILOCK(mp);
if (error == ENOENT) {
MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp);
goto loop;