All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Fix overlayfs inotify interaction
@ 2016-06-30 11:04 Andrey Jr. Melnikov
  2016-07-12 21:01 ` Andrey Melnikov
  0 siblings, 1 reply; 6+ messages in thread
From: Andrey Jr. Melnikov @ 2016-06-30 11:04 UTC (permalink / raw)
  To: Miklos Szeredi, linux-unionfs; +Cc: John McCutchan, Robert Love, Eric Paris

 Fix overlayfs inotify interaction - use d_real_inode() helper
 to resolve real (underlying) inode. Without this inotify is not functional on
 overlayfs.

Signed-off-by: Andrey Jr. Melnikov <temnota.am@gmail.com>

---
Runtime tested with inotifywait in monitor mode to confirm event generation.

cd /tmp/ && mkdir dest upper lower work
mount -t overlay none dest -o upperdir=upper/,lowerdir=lower/,workdir=work/
while /bin/true; do echo test >>/tmp/dest/lower-data; sleep 5; done &
inotifywait -m /tmp/dest/lower-data

 fs/notify/inotify/inotify_user.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c
index b8d08d0..592ce16 100644
--- a/fs/notify/inotify/inotify_user.c
+++ b/fs/notify/inotify/inotify_user.c
@@ -742,7 +742,7 @@ SYSCALL_DEFINE3(inotify_add_watch, int, fd, const char __user *, pathname,
 		goto fput_and_out;
 
 	/* inode held in place by reference to path; group by fget on fd */
-	inode = path.dentry->d_inode;
+	inode = d_real_inode(path.dentry);
 	group = f.file->private_data;
 
 	/* create/update an inode mark */
-- 
2.8.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-07-14 10:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-06-30 11:04 [PATCH] Fix overlayfs inotify interaction Andrey Jr. Melnikov
2016-07-12 21:01 ` Andrey Melnikov
2016-07-14  9:23   ` Miklos Szeredi
2016-07-14  9:42     ` Andrey Melnikov
2016-07-14  9:53       ` Miklos Szeredi
2016-07-14 10:08         ` Andrey Melnikov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.