]> git.pld-linux.org Git - packages/kernel.git/blob - linux-2.4.21-nfs-silly-rename.patch
- argh, back (used by kernel24.spec@HEAD)
[packages/kernel.git] / linux-2.4.21-nfs-silly-rename.patch
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.32443 seconds and 3 git commands to generate.