On Thu, Apr 10, 2014 at 04:12:57PM +0200, Hannes Reinecke wrote: > On 04/10/2014 01:51 PM, Christoph Hellwig wrote: > >> static int > >> ch_release(struct inode *inode, struct file *file) > >> { > >> scsi_changer *ch = file->private_data; > >> > >> scsi_device_put(ch->device); > >> + ch->device = NULL; > >> file->private_data = NULL; > >> + kref_put(&ch->ref, ch_destroy); > > > > Any reason you need to put the scsi_device here already? Defering > > this would give you much eaiser life time rules, and no need to > > deal with a NULL ch->device ever. > > > Sure. But this would require a far more in-depth analysis of the > lifetime of the ch object, and most likely a far more intrusive > patch. You're welcome to do so :-) > > This patch is just a minimal fix; I didn't dare to change too much > of the internals. Oh well, let's go with your simpler version for now. Reviewed-by: Christoph Hellwig <hch@xxxxxx> -- 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