diff options
Diffstat (limited to 'include/linux/reservation.h')
-rw-r--r-- | include/linux/reservation.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/include/linux/reservation.h b/include/linux/reservation.h index 21fc84d82d41..02166e815afb 100644 --- a/include/linux/reservation.h +++ b/include/linux/reservation.h | |||
@@ -167,6 +167,29 @@ reservation_object_lock(struct reservation_object *obj, | |||
167 | } | 167 | } |
168 | 168 | ||
169 | /** | 169 | /** |
170 | * reservation_object_lock_interruptible - lock the reservation object | ||
171 | * @obj: the reservation object | ||
172 | * @ctx: the locking context | ||
173 | * | ||
174 | * Locks the reservation object interruptible for exclusive access and | ||
175 | * modification. Note, that the lock is only against other writers, readers | ||
176 | * will run concurrently with a writer under RCU. The seqlock is used to | ||
177 | * notify readers if they overlap with a writer. | ||
178 | * | ||
179 | * As the reservation object may be locked by multiple parties in an | ||
180 | * undefined order, a #ww_acquire_ctx is passed to unwind if a cycle | ||
181 | * is detected. See ww_mutex_lock() and ww_acquire_init(). A reservation | ||
182 | * object may be locked by itself by passing NULL as @ctx. | ||
183 | */ | ||
184 | static inline int | ||
185 | reservation_object_lock_interruptible(struct reservation_object *obj, | ||
186 | struct ww_acquire_ctx *ctx) | ||
187 | { | ||
188 | return ww_mutex_lock_interruptible(&obj->lock, ctx); | ||
189 | } | ||
190 | |||
191 | |||
192 | /** | ||
170 | * reservation_object_trylock - trylock the reservation object | 193 | * reservation_object_trylock - trylock the reservation object |
171 | * @obj: the reservation object | 194 | * @obj: the reservation object |
172 | * | 195 | * |