> Most changes are 1:1 replacements except for > BUG_ON(atomic_inc_return(&sh->count) != 1); That doesn't look right, 'inc_return == 1' implies inc-from-zero, which is not allowed by refcount. > which has been turned into > refcount_inc(&sh->count); > BUG_ON(refcount_read(&sh->count) != 1); And that is racy, you can have additional increments in between.