Lines Matching refs:lockref

19 	struct lockref old;							\
21 old.lock_count = READ_ONCE(lockref->lock_count); \
23 struct lockref new = old, prev = old; \
25 old.lock_count = cmpxchg64_relaxed(&lockref->lock_count, \
48 void lockref_get(struct lockref *lockref) in lockref_get() argument
56 spin_lock(&lockref->lock); in lockref_get()
57 lockref->count++; in lockref_get()
58 spin_unlock(&lockref->lock); in lockref_get()
67 int lockref_get_not_zero(struct lockref *lockref) in lockref_get_not_zero() argument
79 spin_lock(&lockref->lock); in lockref_get_not_zero()
81 if (lockref->count > 0) { in lockref_get_not_zero()
82 lockref->count++; in lockref_get_not_zero()
85 spin_unlock(&lockref->lock); in lockref_get_not_zero()
96 int lockref_get_or_lock(struct lockref *lockref) in lockref_get_or_lock() argument
106 spin_lock(&lockref->lock); in lockref_get_or_lock()
107 if (lockref->count <= 0) in lockref_get_or_lock()
109 lockref->count++; in lockref_get_or_lock()
110 spin_unlock(&lockref->lock); in lockref_get_or_lock()
122 int lockref_put_return(struct lockref *lockref) in lockref_put_return() argument
140 int lockref_put_or_lock(struct lockref *lockref) in lockref_put_or_lock() argument
150 spin_lock(&lockref->lock); in lockref_put_or_lock()
151 if (lockref->count <= 1) in lockref_put_or_lock()
153 lockref->count--; in lockref_put_or_lock()
154 spin_unlock(&lockref->lock); in lockref_put_or_lock()
163 void lockref_mark_dead(struct lockref *lockref) in lockref_mark_dead() argument
165 assert_spin_locked(&lockref->lock); in lockref_mark_dead()
166 lockref->count = -128; in lockref_mark_dead()
175 int lockref_get_not_dead(struct lockref *lockref) in lockref_get_not_dead() argument
187 spin_lock(&lockref->lock); in lockref_get_not_dead()
189 if (lockref->count >= 0) { in lockref_get_not_dead()
190 lockref->count++; in lockref_get_not_dead()
193 spin_unlock(&lockref->lock); in lockref_get_not_dead()