if (old_dir == new_dir) inode_dir_notify(old_dir, DN_RENAME); else { inode_dir_notify(old_dir, DN_DELETE); inode_dir_notify(new_dir, DN_CREATE); } 
const char *new_name = old_dentry->d_name.name; fsnotify_move(old_dir, new_dir, old_name, new_name, is_dir); 
int vfs_rename(struct inode *old_dir, struct dentry *old_dentry,	       struct inode *new_dir, struct dentry *new_dentry){	int error;	int is_dir = S_ISDIR(old_dentry->d_inode->i_mode);	if (old_dentry->d_inode == new_dentry->d_inode) 		return 0; 	error = may_delete(old_dir, old_dentry, is_dir);	if (error)		return error;	if (!new_dentry->d_inode)		error = may_create(new_dir, new_dentry, NULL);	else		error = may_delete(new_dir, new_dentry, is_dir);	if (error)		return error;	if (!old_dir->i_op || !old_dir->i_op->rename)		return -EPERM;	DQUOT_INIT(old_dir);	DQUOT_INIT(new_dir);	if (is_dir)		error = vfs_rename_dir(old_dir,old_dentry,new_dir,new_dentry);	else		error = vfs_rename_other(old_dir,old_dentry,new_dir,new_dentry);	if (!error) {		if (old_dir == new_dir)			inode_dir_notify(old_dir, DN_RENAME);		else {			inode_dir_notify(old_dir, DN_DELETE);			inode_dir_notify(new_dir, DN_CREATE);		}	}	return error;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/0eeca28300df110bd6ed54b31193c83b87921443/namei.c/clean/fs/namei.c