diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h index 0616ffe45702f0c28fd20390ec9b8574c543032b..03f3b05e8ec17dda4d7b8dcefcc1e723bc6e606c 100644 --- a/include/linux/rwsem.h +++ b/include/linux/rwsem.h @@ -74,6 +74,17 @@ do { \ __init_rwsem((sem), #sem, &__key); \ } 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 */