|
@@ -1801,8 +1801,8 @@ int vfs_rmdir(struct inode *dir, struct dentry *dentry)
|
|
}
|
|
}
|
|
up(&dentry->d_inode->i_sem);
|
|
up(&dentry->d_inode->i_sem);
|
|
if (!error) {
|
|
if (!error) {
|
|
- fsnotify_rmdir(dentry, dentry->d_inode, dir);
|
|
|
|
d_delete(dentry);
|
|
d_delete(dentry);
|
|
|
|
+ fsnotify_rmdir(dentry, dentry->d_inode, dir);
|
|
}
|
|
}
|
|
dput(dentry);
|
|
dput(dentry);
|
|
|
|
|
|
@@ -1874,8 +1874,14 @@ int vfs_unlink(struct inode *dir, struct dentry *dentry)
|
|
|
|
|
|
/* We don't d_delete() NFS sillyrenamed files--they still exist. */
|
|
/* We don't d_delete() NFS sillyrenamed files--they still exist. */
|
|
if (!error && !(dentry->d_flags & DCACHE_NFSFS_RENAMED)) {
|
|
if (!error && !(dentry->d_flags & DCACHE_NFSFS_RENAMED)) {
|
|
|
|
+#if defined(CONFIG_INOTIFY) || defined(CONFIG_DNOTIFY)
|
|
|
|
+ dget(dentry);
|
|
|
|
+ d_delete(dentry);
|
|
fsnotify_unlink(dentry, dir);
|
|
fsnotify_unlink(dentry, dir);
|
|
|
|
+ dput(dentry);
|
|
|
|
+#else
|
|
d_delete(dentry);
|
|
d_delete(dentry);
|
|
|
|
+#endif
|
|
}
|
|
}
|
|
|
|
|
|
return error;
|
|
return error;
|