new_name = kstrdup(new); 
new_name = kstrdup(new, GFP_KERNEL); 
static int dm_hash_rename(const char *old, const char *new){	char *new_name, *old_name;	struct hash_cell *hc;	/*	 * duplicate new.	 */	new_name = kstrdup(new);	if (!new_name)		return -ENOMEM;	down_write(&_hash_lock);	/*	 * Is new free ?	 */	hc = __get_name_cell(new);	if (hc) {		DMWARN("asked to rename to an already existing name %s -> %s",		       old, new);		up_write(&_hash_lock);		kfree(new_name);		return -EBUSY;	}	/*	 * Is there such a device as 'old' ?	 */	hc = __get_name_cell(old);	if (!hc) {		DMWARN("asked to rename a non existent device %s -> %s",		       old, new);		up_write(&_hash_lock);		kfree(new_name);		return -ENXIO;	}	/*	 * rename and move the name cell.	 */	unregister_with_devfs(hc);	list_del(&hc->name_list);	old_name = hc->name;	hc->name = new_name;	list_add(&hc->name_list, _name_buckets + hash_str(new_name));	/* rename the device node in devfs */	register_with_devfs(hc);	up_write(&_hash_lock);	kfree(old_name);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/543537bd922692bc978e2e356fcd8bfc9c2ee7d5/dm-ioctl.c/buggy/drivers/md/dm-ioctl.c