Re: [PATCH, RFC] xfs: remove i_iolock and use i_rwsem in the VFS inode instead

Peter Zijlstra <[email protected]>
Newsgroups gmane.comp.file-systems.xfs.general
Message-ID <[email protected]>
On Thu, Sep 08, 2016 at 07:45:36AM +1000, Dave Chinner wrote:
> On Mon, Sep 05, 2016 at 05:15:29PM +0200, Christoph Hellwig wrote:
> > Hi Dave,
> > 
> > I looked into killing the mrlock and ran into an unexpected problem.
> > 
> > Currently mr_writer tracks that there is someone holding a write lock,
> > lockdep on the other hand checks if the calling thread has that lock.
> > 
> > While that generally is the right semantic, our hack to offload
> > btree splits to a work item offends lockdep.  E.g. this callstack
> > now asserts:
> 
> It's a semaphore, not a mutex. Semaphore locking is independent of
> task context, the lock follows the object it protects, not the task
> that took the lock. i.e. Lockdep is wrong to assume the "owner" of a
> rw_sem will not change between lock and unlock.

We've added strict owner semantics to rwsem a long time ago.

If you want the actual semaphore semantics (which we greatly discourage,
because you cannot do validation on it) you should use
{down,up}_read_non_owner().

I'm not sure we've got write_non_owner() variants for this.

Turns out, there really are very few 'semaphore' users.

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.