On Wednesday 24 January 2007 00:04, eric kustarz wrote:
> Right, i would verify your locks are working correctly (especially
> make sure atomic_add_64() is truly atomic).  Note, these locks are in
> the ARC - so they are not in the VFS.

Yes, atomic_add_64() should be truly atomic, since I've taken that (assembly) 
code from OpenSolaris :)

Although I have to ask. The atomic_add_64() itself is atomic, but couldn't the 
ab->b_state->lsize value change between the atomic_add_64() and the 
ASSERT3U()?

Unless the mutex is protecting this value. But then why would atomic_add_64() 
be needed? Now I'm confused. As you can probably see already, I have no clue 
about that piece of code.. :)

The locks I was referring to were the VOP_RWLOCK() locks in the VFS read() and 
write() syscalls, possibly some others as well that I still haven't 
implemented. I have to do a code review to see what's missing.

Thanks.

Reply via email to