Hello,
On Mon, Feb 20, 2017 at 12:19:01PM +0200, Elena Reshetova wrote:
@@ -134,10 +135,13 @@ static inline void put_css_set(struct css_set
*cset)
* can see it. Similar to atomic_dec_and_lock(), but for an
* rwlock
*/
- if (atomic_add_unless(&cset->refcount, -1, 1))
+ spin_lock_irqsave(&css_set_lock, flags);
+ if (refcount_read(&cset->refcount) != 1) {
+ WARN_ON(refcount_dec_and_test(&cset->refcount));
+ spin_unlock_irqrestore(&css_set_lock, flags);
return;
+ }
This isn't an equivalent conversion and should have been mentioned in
the patch description. Hmm... and I'm not sure this is a good idea.
Can't we add the matching operation on refcount_t rather than adding
extra locking like this?
Thanks.
--
tejun