> 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. -- 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