|
@@ -74,6 +74,17 @@ do { \
|
|
__init_rwsem((sem), #sem, &__key); \
|
|
__init_rwsem((sem), #sem, &__key); \
|
|
} while (0)
|
|
} 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
|
|
* lock for reading
|
|
*/
|
|
*/
|