rem: }
context: devfs_delete_vnode(struct devfs *fs, struct devfs_vnode *v, bool force_delete){	// cant delete it if it's in a directory or is a directory	// and has children	if(!force_delete && ((v->stream.type == STREAM_TYPE_DIR && v->stream.u.dir.dir_head != NULL) || v->dir_next != NULL)) {		return EPERM;	}	// remove it from the global hash table	hash_remove(fs->vnode_list_hash, v);	// TK: for partitions, we have to release the raw device	if( v->stream.type == STREAM_TYPE_DEVICE && v->stream.u.dev.part_map )		vfs_put_vnode( fs->id, v->stream.u.dev.part_map->raw_vnode->id );			if(v->name != NULL)		kfree(v->name);	kfree(v);	return 0;}