On Wed, Apr 20, 2016 at 03:03:12PM -0400, James Bottomley wrote: > Plus, kref_get_unless_zero() should not be used. At that point, the > structure would be freed, so there's no point looking for it. Agreed for this particular case. Note that the whole code seems rather whckay as it uses a rport_destroy method that just has one instance, so I'd really like to see things cleaned up to remove this method and add a warapper for the kref_put before doing further changes. > kref_get_unless_zero is for refcounts that don't necessarily free the > structure (embedded ones). The main case actually is for embedded krefs. The important bit is that the structure is on some lookup data structure (typically list), and kref_get_unless_zero protects against the window from between dropping the last references and doing the list removal in the destructor. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html