Currently, devpts doesn't generate an fsnotify event upon pts creation
because the regular vfs paths aren't involved. Deallocation, on the
other hand, correctly generates a nameremove event thanks to the
d_delete() invocation in devpts_pty_kill().
This patch adds the missing fsnotify_create() trigger in devpts_pty_new().
Signed-off-by: Florin Malita <[email protected]>
---
fs/devpts/inode.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c
index 643e57b..06ef9a2 100644
--- a/fs/devpts/inode.c
+++ b/fs/devpts/inode.c
@@ -19,6 +19,7 @@ #include <linux/mount.h>
#include <linux/tty.h>
#include <linux/devpts_fs.h>
#include <linux/parser.h>
+#include <linux/fsnotify.h>
#define DEVPTS_SUPER_MAGIC 0x1cd1
@@ -178,8 +179,10 @@ int devpts_pty_new(struct tty_struct *tt
inode->i_private = tty;
dentry = get_node(number);
- if (!IS_ERR(dentry) && !dentry->d_inode)
+ if (!IS_ERR(dentry) && !dentry->d_inode) {
d_instantiate(dentry, inode);
+ fsnotify_create(devpts_root->d_inode, dentry);
+ }
mutex_unlock(&devpts_root->d_inode->i_mutex);
Florin Malita wrote:
> Currently, devpts doesn't generate an fsnotify event upon pts creation
> because the regular vfs paths aren't involved. Deallocation, on the
> other hand, correctly generates a nameremove event thanks to the
> d_delete() invocation in devpts_pty_kill().
>
> This patch adds the missing fsnotify_create() trigger in devpts_pty_new().
>
> Signed-off-by: Florin Malita <[email protected]>
Acked-by: H. Peter Anvin <[email protected]>
-hpa