diff --git a/kernel/locking/rwsem.c b/kernel/locking/rwsem.c index ba4cb74de064..1f9dbcf32534 100644 --- a/kernel/locking/rwsem.c +++ b/kernel/locking/rwsem.c @@ -394,7 +394,7 @@ static inline bool rwsem_del_waiter(struct rw_semaphore *sem, struct rwsem_waiter *waiter) { lockdep_assert_held(&sem->wait_lock); - if (__rwsem_del_waiter(sem, waiter)) + if (!__rwsem_del_waiter(sem, waiter)) return true; atomic_long_andnot(RWSEM_FLAG_HANDOFF | RWSEM_FLAG_WAITERS, &sem->count); return false;