Re: [PATCH] Fix overlayfs inotify interaction

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2016-07-14 12:53 GMT+03:00 Miklos Szeredi <miklos@xxxxxxxxxx>:
> On Thu, Jul 14, 2016 at 11:42 AM, Andrey Melnikov <temnota.am@xxxxxxxxx> wrote:
>> 2016-07-14 12:23 GMT+03:00 Miklos Szeredi <miklos@xxxxxxxxxx>:
>>> On Tue, Jul 12, 2016 at 11:01 PM, Andrey Melnikov <temnota.am@xxxxxxxxx> wrote:
>>>> Ping.
>>>>
>>>> 2016-06-30 14:04 GMT+03:00 Andrey Jr. Melnikov <temnota.am@xxxxxxxxx>:
>>>>>  Fix overlayfs inotify interaction - use d_real_inode() helper
>>>>>  to resolve real (underlying) inode. Without this inotify is not functional on
>>>>>  overlayfs.
>>>
>>> Have you tried the alternative patch from Aihua Zhang:
>>>   https://lkml.org/lkml/2016/7/7/83
>>
>> No. My patch add small overhead, lookup inode once when add inotify
>> watch, this patch - lookup inode on each operation. For what?
>
> I'm afraid that your patch won't work for all notifications (like
> directory modification).

It work with dir's too:

# mount
none on /tmp/dest type overlay
(rw,relatime,lowerdir=lower/,upperdir=upper/,workdir=work/)

# cd /tmp/dest/test-dir/
/tmp/dest/test-dir# ls -als
total 8
4 drwxr-xr-x 2 root root 4096 Jul 14 09:58 .
4 drwxr-xr-x 1 root root 4096 Jul 14 09:58 ..
/tmp/dest/test-dir# touch test-1
/tmp/dest/test-dir# cd ..
/tmp/dest# mv test-dir/ test-dir-1/
/tmp/dest# touch test-dir-1/test-2
/tmp/dest# mkdir test-dir-1/test-dir-2

in other console:

# inotifywait -m /tmp/dest/test-dir/
Setting up watches.
Watches established.
/tmp/dest/test-dir/ OPEN,ISDIR
/tmp/dest/test-dir/ ACCESS,ISDIR
/tmp/dest/test-dir/ CLOSE_NOWRITE,CLOSE,ISDIR
/tmp/dest/test-dir/ OPEN,ISDIR
/tmp/dest/test-dir/ ACCESS,ISDIR
/tmp/dest/test-dir/ CLOSE_NOWRITE,CLOSE,ISDIR
/tmp/dest/test-dir/ CREATE test-1
/tmp/dest/test-dir/ OPEN test-1
/tmp/dest/test-dir/ ATTRIB test-1
/tmp/dest/test-dir/ CLOSE_WRITE,CLOSE test-1
/tmp/dest/test-dir/ MOVE_SELF
/tmp/dest/test-dir/ OPEN,ISDIR
/tmp/dest/test-dir/ ACCESS,ISDIR
/tmp/dest/test-dir/ CLOSE_NOWRITE,CLOSE,ISDIR
/tmp/dest/test-dir/ CREATE test-2
/tmp/dest/test-dir/ OPEN test-2
/tmp/dest/test-dir/ ATTRIB test-2
/tmp/dest/test-dir/ CLOSE_WRITE,CLOSE test-2
/tmp/dest/test-dir/ CREATE,ISDIR test-dir-2
/tmp/dest/test-dir/ OPEN,ISDIR
/tmp/dest/test-dir/ ACCESS,ISDIR
/tmp/dest/test-dir/ CLOSE_NOWRITE,CLOSE,ISDIR

Can't see any problem here.

>>>>> Signed-off-by: Andrey Jr. Melnikov <temnota.am@xxxxxxxxx>
>>>>>
>>>>> ---
>>>>> 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
>>>>>
--
To unsubscribe from this list: send the line "unsubscribe linux-unionfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystems Devel]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux