mbox series

[0/9] Fixes for fanotify name events

Message ID 20200722125849.17418-1-amir73il@gmail.com
Headers show
Series Fixes for fanotify name events | expand

Message

Amir Goldstein July 22, 2020, 12:58 p.m. UTC
Jan,

Following your feedback [1] to fanotify name events, I wrote some LTP
tests [2] to add missing test coverage:

1) dnotify/inotify: report event to both parent and child -
   catches the dnotify bug I had in v4 after unified event patch

2) fanotify10: add groups with FAN_REPORT_NAME to the setup -
   catches the bug you noticed in fanotify_group_event_mask()

3) fanotify10: add test cases with ignored mask on watching parent -
   catches the inconsistecy with ignored masks that you noticed [*]

The patches in this series apply to your fsnotify branch and are
avaiable on my fsnotify-fixes branch [3].

Patch 1 fixes issue #2 above
Patch 2 fixes another issue found by tests
Patch 3 fixes a minor issue found by code review
Patches 4-6 simplify the code based on your suggestions
Patch 7 depends on 4-6 and fixes issue #3 above [*]

Optional patches:
Patch 8 implements your suggestion of simplified handler_event()
Patch 9 is a possible fix for kernel test robot reported performance
regression. I did not get any feedback on it, but it is trivial.

Thanks,
Amir.

[*] The tests for merging ignored mask on watching parent set the
    event FAN_OPEN in both mark mask and ignored mask and set the
    flag FAN_EVENT_ON_CHILD in mark mask, because the expected behavior
    in this case is well defined.  I have patches to fix the case of
    FAN_OPEN in ignored mask and flag FAN_EVENT_ON_CHILD in mark mask,
    but decided not to post them at this time.

[1] https://lore.kernel.org/linux-fsdevel/20200716171332.GK5022@quack2.suse.cz/
[2] https://github.com/amir73il/ltp/commits/fsnotify_parent
[3] https://github.com/amir73il/linux/commits/fsnotify-fixes

Amir Goldstein (9):
  fanotify: fix reporting event to sb/mount marks
  inotify: do not set FS_EVENT_ON_CHILD in non-dir mark mask
  audit: do not set FS_EVENT_ON_CHILD in audit marks mask
  fsnotify: create helper fsnotify_inode()
  fsnotify: simplify dir argument to handle_event()
  fsnotify: pass dir and inode arguments to fsnotify()
  fsnotify: fix merge with parent mark masks
  fsnotify: create method handle_inode_event() in fsnotify_operations
  fsnotify: pass inode to fsnotify_parent()

 fs/kernfs/file.c                 |  11 ++-
 fs/nfsd/filecache.c              |  12 ++--
 fs/notify/dnotify/dnotify.c      |  38 +++-------
 fs/notify/fanotify/fanotify.c    |  17 +++--
 fs/notify/fsnotify.c             | 118 +++++++++++++++++++++++++------
 fs/notify/inotify/inotify_user.c |  14 ++--
 include/linux/fsnotify.h         |  44 ++++++------
 include/linux/fsnotify_backend.h |  33 ++++++---
 kernel/audit_fsnotify.c          |  22 +++---
 kernel/audit_tree.c              |  10 ++-
 kernel/audit_watch.c             |  19 +++--
 kernel/trace/trace.c             |   3 +-
 12 files changed, 196 insertions(+), 145 deletions(-)

Comments

Jan Kara July 27, 2020, 9:57 p.m. UTC | #1
On Wed 22-07-20 15:58:40, Amir Goldstein wrote:
> Jan,
> 
> Following your feedback [1] to fanotify name events, I wrote some LTP
> tests [2] to add missing test coverage:
> 
> 1) dnotify/inotify: report event to both parent and child -
>    catches the dnotify bug I had in v4 after unified event patch
> 
> 2) fanotify10: add groups with FAN_REPORT_NAME to the setup -
>    catches the bug you noticed in fanotify_group_event_mask()
> 
> 3) fanotify10: add test cases with ignored mask on watching parent -
>    catches the inconsistecy with ignored masks that you noticed [*]
> 
> The patches in this series apply to your fsnotify branch and are
> avaiable on my fsnotify-fixes branch [3].
> 
> Patch 1 fixes issue #2 above
> Patch 2 fixes another issue found by tests
> Patch 3 fixes a minor issue found by code review
> Patches 4-6 simplify the code based on your suggestions
> Patch 7 depends on 4-6 and fixes issue #3 above [*]
> 
> Optional patches:
> Patch 8 implements your suggestion of simplified handler_event()
> Patch 9 is a possible fix for kernel test robot reported performance
> regression. I did not get any feedback on it, but it is trivial.

OK, so I've added patches 1-8 to my tree. I've checked that the final
resulting source after my patch reorg is the same as after just applying
the patches. LTP tests pass so I've pushed out everything to linux-next to
give it some more beating. So everything should be ready for the merge
window.

								Honza