Message ID | 20190516102641.6574-8-amir73il@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Sort out fsnotify_nameremove() mess | expand |
On Thu, 16 May 2019 13:26:34 +0300 Amir Goldstein <amir73il@gmail.com> wrote: > This will allow generating fsnotify delete events after the > fsnotify_nameremove() hook is removed from d_delete(). I added this and the patch you forwarded to me (thank you for doing that), and ran some smoke tests against it. It didn't trigger any regressions in those tests. Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org> -- Steve > > Cc: Steven Rostedt <rostedt@goodmis.org> > Signed-off-by: Amir Goldstein <amir73il@gmail.com> > --- > fs/tracefs/inode.c | 23 ++++------------------- > 1 file changed, 4 insertions(+), 19 deletions(-) > > diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c > index 7098c49f3693..6ac31ea9ad5d 100644 > --- a/fs/tracefs/inode.c > +++ b/fs/tracefs/inode.c > @@ -501,25 +501,10 @@ __init struct dentry > *tracefs_create_instance_dir(const char *name, > static int __tracefs_remove(struct dentry *dentry, struct dentry > *parent) { > - int ret = 0; > - > - if (simple_positive(dentry)) { > - if (dentry->d_inode) { > - dget(dentry); > - switch (dentry->d_inode->i_mode & S_IFMT) { > - case S_IFDIR: > - ret = simple_rmdir(parent->d_inode, > dentry); > - break; > - default: > - simple_unlink(parent->d_inode, > dentry); > - break; > - } > - if (!ret) > - d_delete(dentry); > - dput(dentry); > - } > - } > - return ret; > + if (simple_positive(dentry)) > + return simple_remove(d_inode(parent), dentry); > + > + return 0; > } > > /**
diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c index 7098c49f3693..6ac31ea9ad5d 100644 --- a/fs/tracefs/inode.c +++ b/fs/tracefs/inode.c @@ -501,25 +501,10 @@ __init struct dentry *tracefs_create_instance_dir(const char *name, static int __tracefs_remove(struct dentry *dentry, struct dentry *parent) { - int ret = 0; - - if (simple_positive(dentry)) { - if (dentry->d_inode) { - dget(dentry); - switch (dentry->d_inode->i_mode & S_IFMT) { - case S_IFDIR: - ret = simple_rmdir(parent->d_inode, dentry); - break; - default: - simple_unlink(parent->d_inode, dentry); - break; - } - if (!ret) - d_delete(dentry); - dput(dentry); - } - } - return ret; + if (simple_positive(dentry)) + return simple_remove(d_inode(parent), dentry); + + return 0; } /**
This will allow generating fsnotify delete events after the fsnotify_nameremove() hook is removed from d_delete(). Cc: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Amir Goldstein <amir73il@gmail.com> --- fs/tracefs/inode.c | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-)