On Tue, Jul 12, 2005 at 04:01:32PM -0700, Daniel Walker wrote: > > Is there something so odd about the XFS locking, that it can't use the > rt_lock ?
Not that I know of - XFS does use the downgrade_write interface, whose use isn't overly common in the rest of the kernel... maybe that has caused some confusion, dunno. > --- linux.orig/fs/xfs/linux-2.6/mrlock.h > +++ linux/fs/xfs/linux-2.6/mrlock.h > @@ -37,12 +37,12 @@ > enum { MR_NONE, MR_ACCESS, MR_UPDATE }; > > typedef struct { > - struct rw_semaphore mr_lock; > - int mr_writer; > + struct compat_rw_semaphore mr_lock; > + int mr_writer; > } mrlock_t; The XFS code is also written such that it just releases a mrlock without tracking whether it had it for access/update in the end (end lock state is not necessarily how it started out, since it may have downgraded the lock at some point, or it may not have). Its a non-trivial change to track that state within XFS itself, so the above mr_writer field in XFS's mrlock wrapper tracks that state alongside the rw_semaphore. It would prefer to be getting that out of the rw_semaphore itself, alot, but there's not any mechanism for doing so (its not a particularly nice API change either, really, for the generic locking code). I guess that may have been another reason for the above change in the RT patch, I don't know all the details there. cheers. -- Nathan - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/