mbox series

[00/20] Prep work for fanotify named events

Message ID 20200612093343.5669-1-amir73il@gmail.com
Headers show
Series Prep work for fanotify named events | expand

Message

Amir Goldstein June 12, 2020, 9:33 a.m. UTC
Hi Jan,

As you know, the fanotify named events series grew quite large due to
a lot of prep work I needed to do and some minor bugs and optimizations
I encoutered along the way, including Mel's optimization patch that
needed massive conclict resolving with my series.

Most of this series is harmless re-factoring, including some changes
that were suggested by you in the last posting of fanotify named events.
There are some minor bug fixes that change behavior, hopefully for
the better, like the patch to kernfs. But anyway, there should be no
issue with merging any of those patches independently from the rest of
the work.

Most of this series should be fairly easy to review, with the exception
of last two patches that change the way we store a variable size event
struct.

It would be great if you can provide me feedback as early as possible
about the design choices intoduces herein, such as the "implicit event
flags" infrastructure that is needed for requesting events on child for
sb/mount marks.

I was hoping that we could get those changes out of the way and into
linux-next as early as possible after rc1 to get wider testing coverage,
before we move on to reviewing the new feature.

The full work is available on my github [1] including LTP tests [2]
and man page [3]. More on these when I post the patches.

Thanks,
Amir.

[1] https://github.com/amir73il/linux/commits/fanotify_name_fid
[2] https://github.com/amir73il/ltp/commits/fanotify_name_fid
[3] https://github.com/amir73il/man-pages/commits/fanotify_name_fid

Amir Goldstein (19):
  fsnotify: fold fsnotify() call into fsnotify_parent()
  fsnotify: return non const from fsnotify_data_inode()
  nfsd: use fsnotify_data_inode() to get the unlinked inode
  kernfs: do not call fsnotify() with name without a parent
  inotify: do not use objectid when comparing events
  fanotify: create overflow event type
  fanotify: break up fanotify_alloc_event()
  fsnotify: pass dir argument to handle_event() callback
  fanotify: generalize the handling of extra event flags
  fanotify: generalize merge logic of events on dir
  fanotify: distinguish between fid encode error and null fid
  fanotify: generalize test for FAN_REPORT_FID
  fanotify: mask out special event flags from ignored mask
  fanotify: prepare for implicit event flags in mark mask
  fanotify: use FAN_EVENT_ON_CHILD as implicit flag on sb/mount/non-dir
    marks
  fanotify: remove event FAN_DIR_MODIFY
  fsnotify: add object type "child" to object type iterator
  fanotify: move event name into fanotify_fh
  fanotify: no external fh buffer in fanotify_name_event

Mel Gorman (1):
  fsnotify: Rearrange fast path to minimise overhead when there is no
    watcher

 fs/kernfs/file.c                     |   2 +-
 fs/nfsd/filecache.c                  |   8 +-
 fs/notify/dnotify/dnotify.c          |   8 +-
 fs/notify/fanotify/fanotify.c        | 319 +++++++++++++++------------
 fs/notify/fanotify/fanotify.h        |  81 +++++--
 fs/notify/fanotify/fanotify_user.c   | 108 +++++----
 fs/notify/fsnotify.c                 |  82 ++++---
 fs/notify/inotify/inotify.h          |   6 +-
 fs/notify/inotify/inotify_fsnotify.c |  11 +-
 fs/notify/inotify/inotify_user.c     |   4 +-
 include/linux/fanotify.h             |   6 +-
 include/linux/fsnotify.h             |  44 ++--
 include/linux/fsnotify_backend.h     |  35 ++-
 include/uapi/linux/fanotify.h        |   1 -
 kernel/audit_fsnotify.c              |  10 +-
 kernel/audit_tree.c                  |   6 +-
 kernel/audit_watch.c                 |   6 +-
 17 files changed, 438 insertions(+), 299 deletions(-)