summaryrefslogtreecommitdiffstats
path: root/inotify-fix-inotify-oneshot-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'inotify-fix-inotify-oneshot-support.patch')
-rw-r--r--inotify-fix-inotify-oneshot-support.patch25
1 files changed, 25 insertions, 0 deletions
diff --git a/inotify-fix-inotify-oneshot-support.patch b/inotify-fix-inotify-oneshot-support.patch
new file mode 100644
index 0000000..ba63e10
--- /dev/null
+++ b/inotify-fix-inotify-oneshot-support.patch
@@ -0,0 +1,25 @@
+#607327
+
+During the large inotify rewrite to fsnotify I completely dropped support
+for IN_ONESHOT. Reimplement that support.
+
+Signed-off-by: Eric Paris <eparis@redhat.com>
+---
+
+ fs/notify/inotify/inotify_fsnotify.c | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/fs/notify/inotify/inotify_fsnotify.c b/fs/notify/inotify/inotify_fsnotify.c
+index daa666a..388a150 100644
+--- a/fs/notify/inotify/inotify_fsnotify.c
++++ b/fs/notify/inotify/inotify_fsnotify.c
+@@ -126,6 +126,9 @@ static int inotify_handle_event(struct fsnotify_group *group, struct fsnotify_ev
+ ret = 0;
+ }
+
++ if (entry->mask & IN_ONESHOT)
++ fsnotify_destroy_mark_by_entry(entry);
++
+ /*
+ * If we hold the entry until after the event is on the queue
+ * IN_IGNORED won't be able to pass this event in the queue