if (tpnt->header_cache != NULL) vfree(tpnt->header_cache); 
vfree(tpnt->header_cache); 
static int osst_remove(struct device *dev){	struct scsi_device * SDp = to_scsi_device(dev);	struct osst_tape * tpnt;	int i, mode;	if ((SDp->type != TYPE_TAPE) || (osst_nr_dev <= 0))		return 0;	write_lock(&os_scsi_tapes_lock);	for(i=0; i < osst_max_dev; i++) {		if((tpnt = os_scsi_tapes[i]) && (tpnt->device == SDp)) {			osst_sysfs_destroy(MKDEV(OSST_MAJOR, i));			osst_sysfs_destroy(MKDEV(OSST_MAJOR, i+128));			tpnt->device = NULL;			for (mode = 0; mode < ST_NBR_MODES; ++mode) {				devfs_remove("%s/ot%s", SDp->devfs_name, osst_formats[mode]);				devfs_remove("%s/ot%sn", SDp->devfs_name, osst_formats[mode]);			}			devfs_unregister_tape(tpnt->drive->number);			put_disk(tpnt->drive);			os_scsi_tapes[i] = NULL;			osst_nr_dev--;			write_unlock(&os_scsi_tapes_lock);			if (tpnt->header_cache != NULL) vfree(tpnt->header_cache);			if (tpnt->buffer) {				normalize_buffer(tpnt->buffer);				kfree(tpnt->buffer);			}			kfree(tpnt);			return 0;		}	}	write_unlock(&os_scsi_tapes_lock);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/f9101210e7aa72daf92722d451a2f7e3af5f781f/osst.c/buggy/drivers/scsi/osst.c