mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 16:13:19 +09:00
fsnotify: move fsnotify_nameremove() hook out of d_delete()
d_delete() was piggy backed for the fsnotify_nameremove() hook when
in fact not all callers of d_delete() care about fsnotify events.
For all callers of d_delete() that may be interested in fsnotify events,
we made sure to call one of fsnotify_{unlink,rmdir}() hooks before
calling d_delete().
Now we can move the fsnotify_nameremove() call from d_delete() to the
fsnotify_{unlink,rmdir}() hooks.
Two explicit calls to fsnotify_nameremove() from nfs/afs sillyrename
are also removed. This will cause a change of behavior - nfs/afs will
NOT generate an fsnotify delete event when renaming over a positive
dentry. This change is desirable, because it is consistent with the
behavior of all other filesystems.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
@@ -199,6 +199,7 @@ static inline void fsnotify_unlink(struct inode *dir, struct dentry *dentry)
|
||||
WARN_ON_ONCE(d_is_negative(dentry));
|
||||
|
||||
/* TODO: call fsnotify_dirent() */
|
||||
fsnotify_nameremove(dentry, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -222,6 +223,7 @@ static inline void fsnotify_rmdir(struct inode *dir, struct dentry *dentry)
|
||||
WARN_ON_ONCE(d_is_negative(dentry));
|
||||
|
||||
/* TODO: call fsnotify_dirent() */
|
||||
fsnotify_nameremove(dentry, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user