|
@@ -166,6 +166,26 @@ reservation_object_lock(struct reservation_object *obj,
|
|
|
return ww_mutex_lock(&obj->lock, ctx);
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * reservation_object_trylock - trylock the reservation object
|
|
|
+ * @obj: the reservation object
|
|
|
+ *
|
|
|
+ * Tries to lock the reservation object for exclusive access and modification.
|
|
|
+ * Note, that the lock is only against other writers, readers will run
|
|
|
+ * concurrently with a writer under RCU. The seqlock is used to notify readers
|
|
|
+ * if they overlap with a writer.
|
|
|
+ *
|
|
|
+ * Also note that since no context is provided, no deadlock protection is
|
|
|
+ * possible.
|
|
|
+ *
|
|
|
+ * Returns true if the lock was acquired, false otherwise.
|
|
|
+ */
|
|
|
+static inline bool __must_check
|
|
|
+reservation_object_trylock(struct reservation_object *obj)
|
|
|
+{
|
|
|
+ return ww_mutex_trylock(&obj->lock);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* reservation_object_unlock - unlock the reservation object
|
|
|
* @obj: the reservation object
|