Lines Matching refs:owner
90 sem->owner = NULL; in __init_rwsem()
350 static inline bool owner_on_cpu(struct task_struct *owner) in owner_on_cpu() argument
356 return owner->on_cpu && !vcpu_is_preempted(task_cpu(owner)); in owner_on_cpu()
361 struct task_struct *owner; in rwsem_can_spin_on_owner() local
370 owner = READ_ONCE(sem->owner); in rwsem_can_spin_on_owner()
371 if (owner) { in rwsem_can_spin_on_owner()
372 ret = is_rwsem_owner_spinnable(owner) && in rwsem_can_spin_on_owner()
373 owner_on_cpu(owner); in rwsem_can_spin_on_owner()
384 struct task_struct *owner = READ_ONCE(sem->owner); in rwsem_spin_on_owner() local
386 if (!is_rwsem_owner_spinnable(owner)) in rwsem_spin_on_owner()
390 while (owner && (READ_ONCE(sem->owner) == owner)) { in rwsem_spin_on_owner()
403 if (need_resched() || !owner_on_cpu(owner)) { in rwsem_spin_on_owner()
416 return is_rwsem_owner_spinnable(READ_ONCE(sem->owner)); in rwsem_spin_on_owner()
454 if (!sem->owner && (need_resched() || rt_task(current))) in rwsem_optimistic_spin()