fsnotify: move fsnotify_nameremove() hook out of d_delete()
authorAmir Goldstein <amir73il@gmail.com>
Sun, 26 May 2019 14:34:10 +0000 (17:34 +0300)
committerJan Kara <jack@suse.cz>
Thu, 20 Jun 2019 12:47:44 +0000 (14:47 +0200)
commit49246466a98996e78b68a0041807dbd2628c53fe
tree67fe8d0ed3353e9933b886d11a10ea07bb1d3f22
parent6146e78c0364a881af9bec42eb40882b1e329327
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>
fs/afs/dir_silly.c
fs/dcache.c
fs/nfs/unlink.c
include/linux/fsnotify.h