Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 31 Jul 2008 11:50:51 +0200
From:      "Attilio Rao" <attilio@freebsd.org>
To:        "Konstantin Belousov" <kib@freebsd.org>
Cc:        cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org
Subject:   Re: cvs commit: src/sys/vm vnode_pager.c
Message-ID:  <3bbf2fe10807310250v22258277g9a66e59c35778b64@mail.gmail.com>
In-Reply-To: <200807301819.m6UIJmY4004034@repoman.freebsd.org>
References:  <200807301819.m6UIJmY4004034@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
2008/7/30 Konstantin Belousov <kib@freebsd.org>:
> kib         2008-07-30 18:16:06 UTC
>
>  FreeBSD src repository
>
>  Modified files:
>    sys/vm               vnode_pager.c
>  Log:
>  SVN rev 181004 on 2008-07-30 18:16:06Z by kib
>
>  The behaviour of the lockmgr going back at least to the 4.4BSD-Lite2 was
>  to downgrade the exclusive lock to shared one when exclusive lock owner
>  requested shared lock. New lockmgr panics instead.
>
>  The vnode_pager_lock function requests shared lock on the vnode backing
>  the OBJT_VNODE, and can be called when the current thread already holds
>  an exlcusive lock on the vnode. For instance, it happens when handling
>  page fault from the VOP_WRITE() uiomove that writes to the file, with
>  the faulted in page fetched from the vm object backed by the same file.
>  We then get the situation described above.
>
>  Verify whether the vnode is already exclusively locked by the curthread
>  and request recursed exclusive vnode lock instead of shared, if true.

Many thanks.

Attilio


-- 
Peace can only be achieved by understanding - A. Einstein



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3bbf2fe10807310250v22258277g9a66e59c35778b64>