Ricardo Correia wrote:
> 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.
> 

Don't worry about VOP_RWLOCK/VOP_RWUNLOCK(), ZFS doesn't implement those 
vops.  ZFS/ZPL uses its own locks to guarantee the proper POSIX semantics.

   -Mark


Reply via email to