--- linux-2.4.33/fs/namei.c.orig 2006-08-16 13:23:40.315971000 +0200 +++ linux-2.4.33/fs/namei.c 2006-08-16 13:44:39.595971000 +0200 @@ -1505,7 +1505,8 @@ double_up(&dir->i_zombie, &inode->i_zombie); iput(inode); - if (!error) { + /* We don't d_delete() NFS sillyrenamed files--they still exist. */ + if (!error && !(dentry->d_flags & DCACHE_NFSFS_RENAMED)) { d_delete(dentry); inode_dir_notify(dir, DN_DELETE); } @@ -1851,6 +1852,11 @@ struct inode *new_dir, struct dentry *new_dentry) { int error; + + if (old_dentry->d_flags & DCACHE_NFSFS_RENAMED || + new_dentry->d_flags & DCACHE_NFSFS_RENAMED) + return -EBUSY; + if (S_ISDIR(old_dentry->d_inode->i_mode)) error = vfs_rename_dir(old_dir,old_dentry,new_dir,new_dentry); else