Commit 61c5d53e authored by Al Viro's avatar Al Viro
Browse files

simple_recursive_removal(): saner interaction with fsnotify



Make it match the real unlink(2)/rmdir(2) - notify *after* the
operation.  And use fsnotify_delete() instead of messing with
fsnotify_unlink()/fsnotify_rmdir().

Currently the only caller that cares is the one in debugfs, and
there the order matching the normal syscalls makes more sense;
it'll get more serious for users introduced later in the series.

Reviewed-by: default avatarAmir Goldstein <amir73il@gmail.com>
Reviewed-by: default avatarChristian Brauner <brauner@kernel.org>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 19272b37
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -628,12 +628,9 @@ void simple_recursive_removal(struct dentry *dentry,
			inode_lock(inode);
			if (simple_positive(victim)) {
				d_invalidate(victim);	// avoid lost mounts
				if (d_is_dir(victim))
					fsnotify_rmdir(inode, victim);
				else
					fsnotify_unlink(inode, victim);
				if (callback)
					callback(victim);
				fsnotify_delete(inode, d_inode(victim), victim);
				dput(victim);		// unpin it
			}
			if (victim == dentry) {