]> git.pld-linux.org Git - packages/kernel.git/blame - linux-2.4.21-nfs-silly-rename.patch
- ported from linux-2.4.25-atmdd.patch
[packages/kernel.git] / linux-2.4.21-nfs-silly-rename.patch
CommitLineData
753eff87
JR
1--- linux-2.4.21-rc7/fs/namei.c Sun Jun 8 23:57:33 2003
2+++ linux-2.4.21-rc7-silly/fs/namei.c Tue Jun 10 23:49:08 2003
3@@ -1482,13 +1482,14 @@ int vfs_unlink(struct inode *dir, struct
4 lock_kernel();
5 error = dir->i_op->unlink(dir, dentry);
6 unlock_kernel();
7- if (!error)
8+ if (!error &&
9+ !(dentry->d_flags & DCACHE_NFSFS_RENAMED))
10 d_delete(dentry);
11 }
12 }
13 }
14 up(&dir->i_zombie);
15- if (!error)
16+ if (!error && !(dentry->d_flags & DCACHE_NFSFS_RENAMED))
17 inode_dir_notify(dir, DN_DELETE);
18 return error;
19 }
20@@ -1830,6 +1831,11 @@ int vfs_rename(struct inode *old_dir, st
21 struct inode *new_dir, struct dentry *new_dentry)
22 {
23 int error;
24+
25+ if (old_dentry->d_flags & DCACHE_NFSFS_RENAMED ||
26+ new_dentry->d_flags & DCACHE_NFSFS_RENAMED)
27+ return -EBUSY;
28+
29 if (S_ISDIR(old_dentry->d_inode->i_mode))
30 error = vfs_rename_dir(old_dir,old_dentry,new_dir,new_dentry);
31 else
This page took 0.186992 seconds and 4 git commands to generate.