This is kinda perverse.  If a != b, any entry in both of their respective ->users lists is an object that allegedly has both a and b as its ->refcount member; which is patently untrue, as a != b, so at most one of them can be equal to its ->refcount.  So the loop below should really be saying "if I find any element in both lists, it's a programming error; otherwise, well, we're distinct refcounts, aren't we ?" - but, in the interests of performance, it'd make more sense to just <code>return a == b;</code> here.