* Josef Bacik <[email protected]> wrote: > From: Josef Bacik <[email protected]> > > Btrfs needs a simple way to know if it needs to let go of it's read lock on a > rwsem. Introduce rwsem_is_contended to check to see if there are any waiters > on > this rwsem currently. This is just a hueristic, it is meant to be light and > not > 100% accurate and called by somebody already holding on to the rwsem in either > read or write. Thanks, > > Signed-off-by: Josef Bacik <[email protected]> > --- > include/linux/rwsem.h | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h > index 0616ffe..03f3b05 100644 > --- a/include/linux/rwsem.h > +++ b/include/linux/rwsem.h > @@ -75,6 +75,17 @@ do { > \ > } while (0) > > /* > + * This is the same regardless of which rwsem implementation that is being > used. > + * It is just a heuristic meant to be called by somebody alreadying holding > the > + * rwsem to see if somebody from an incompatible type is wanting access to > the > + * lock. > + */ > +static inline int rwsem_is_contended(struct rw_semaphore *sem) > +{ > + return !list_empty(&sem->wait_list); > +} > + > +/* > * lock for reading > */ > extern void down_read(struct rw_semaphore *sem);
Looks good to me. To make it easier to merge 2/2 feel free to add this to the BTRFS tree, with my Acked-by: Acked-by: Ingo Molnar <[email protected]> Thanks, Ingo -- 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/

