Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: WAPBL patch for testing



On Sat, Nov 01, 2008 at 09:47:24AM +0100, Juergen Hannken-Illjes wrote:
> One thread has a wapbl transaction, calls VOP_GETPAGES and wants
> to busy a page  while  another thread calls VOP_PUTPAGES on the
> same vnode, takes pages busy and wants to start a wapbl transaction.

Can you please try to repeat this problem and confirm the following?
I think the only situation where this can happen is if VOP_GETPAGES
wants to allocate new pages and therefore acquires the WAPBL lock. Now
VOP_GETPAGES doesn't necessarily hold the vnode interlock, so
VOP_PUTPAGES might be running and the above happen.

If this is correct, wouldn't temporarily acquiring the vnode interlock
fix this? E.g. if PGO_LOCKED is not set, get the interlock, get the
WAPBL lock, drop the interlock.

Joerg


Home | Main Index | Thread Index | Old Index