All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/20] fanotify: super block mark
@ 2018-04-05 13:18 Amir Goldstein
  2018-04-05 13:18 ` [PATCH v2 01/20] fanotify: fix logic of events on child Amir Goldstein
                   ` (19 more replies)
  0 siblings, 20 replies; 49+ messages in thread
From: Amir Goldstein @ 2018-04-05 13:18 UTC (permalink / raw)
  To: Jan Kara; +Cc: Miklos Szeredi, Marko Rauhamaa, linux-fsdevel

Hi Jan,

It's been over a year since I posted my last patch revision [1].
This series, also available on my fanoitfy_sb branch [2], addresses
your feedback to attach marks to a super block instead of the root inode.

Patch 1 fixes a bug with ignore mask, which I had already posted.
Most of the patches thereafter make the code handling inode and vfsmount
marks generic for N object types (where N=2).
Patches 17-18 add the super block mark object type and the bits of
non generic code needed to support it.
Patches 19-20 add the API and implementation for FAN_MARK_FILESSYTEM
to fanotify backend.

I tested this series with existing fsnotify LTP tests and have written
another four LTP tests [3] - one regression test for patch [1/20] and
three tests to verify functionality of a super block mark.

For context, here are my TODO items for a followup series:
- Add support for fanotify_init() flags FAN_EVENT_INFO_NOFD
  and FAN_EVENT_INFO_FH to report file handle on event instead
  of file descriptor.
- Support events with data type FSNOTIFY_EVENT_INODE on an
  inode or super block mark to a group that was initialized
  with flag FAN_EVENT_INFO_FH.
- Add support for fanotify_init() flags FAN_EVENT_INFO_FILENAME
  and FAN_EVENT_INFO_COOKIE to achieve the full functionality
  available with inotify.

Please let me know what you think of this series as well as
future plans.

Thanks,
Amir.

[1] https://lwn.net/Articles/716973/
[2] https://github.com/amir73il/linux/commits/fanotify_sb
[3] https://github.com/amir73il/ltp/commits/fanotify_sb

Amir Goldstein (20):
  fanotify: fix logic of events on child
  fsnotify: fix ignore mask logic in send_to_group()
  fsnotify: fix typo in a comment about mark->g_list
  MAINTAINERS: add an entry for FSNOTIFY infrastructure
  fsnotify: use type id to identify connector object type
  fsnotify: remove redundant arguments to handle_event()
  fsnotify: introduce marks iteration helpers
  fsnotify: generalize iteration of marks by object type
  fsnotify: generalize send_to_group()
  fanotify: generalize fanotify_should_send_event()
  fsnotify: add fsnotify_add_inode_mark() wrappers
  fsnotify: introduce prototype struct fsnotify_obj
  fsnotify: pass fsnotify_obj instead of **connp argument
  fsnotify: pass object and object type to fsnotify_add_mark()
  fsnotify: make fsnotify_recalc_mask() unaware of object type
  fsnotify: generalize fsnotify_detach_connector_from_object()
  fsnotify: add super block object type
  fsnotify: send path type events to group with super block marks
  fanotify: factor out helpers to add/remove mark
  fanotify: add API to attach/detach super block mark

 MAINTAINERS                          |   8 ++
 fs/inode.c                           |   2 +-
 fs/mount.h                           |   4 +-
 fs/notify/dnotify/dnotify.c          |  27 ++---
 fs/notify/fanotify/fanotify.c        |  45 ++++-----
 fs/notify/fanotify/fanotify_user.c   | 135 ++++++++++++-------------
 fs/notify/fdinfo.c                   |   6 +-
 fs/notify/fsnotify.c                 | 189 ++++++++++++++++++++---------------
 fs/notify/fsnotify.h                 |  34 +++++--
 fs/notify/group.c                    |   2 +-
 fs/notify/inotify/inotify.h          |   2 -
 fs/notify/inotify/inotify_fsnotify.c |   6 +-
 fs/notify/inotify/inotify_user.c     |  14 +--
 fs/notify/mark.c                     | 166 +++++++++++++++---------------
 fs/super.c                           |   2 +-
 include/linux/fs.h                   |  10 +-
 include/linux/fsnotify.h             |   8 ++
 include/linux/fsnotify_backend.h     | 134 ++++++++++++++++++++-----
 include/linux/fsnotify_obj.h         |  14 +++
 include/uapi/linux/fanotify.h        |   7 +-
 kernel/audit_fsnotify.c              |   5 +-
 kernel/audit_tree.c                  |  15 ++-
 kernel/audit_watch.c                 |   7 +-
 kernel/auditsc.c                     |   4 +-
 24 files changed, 507 insertions(+), 339 deletions(-)
 create mode 100644 include/linux/fsnotify_obj.h

-- 
2.7.4

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

end of thread, other threads:[~2018-04-19 14:28 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-05 13:18 [PATCH v2 00/20] fanotify: super block mark Amir Goldstein
2018-04-05 13:18 ` [PATCH v2 01/20] fanotify: fix logic of events on child Amir Goldstein
2018-04-09  3:37   ` Sasha Levin
2018-04-13 13:50   ` Jan Kara
2018-04-05 13:18 ` [PATCH v2 02/20] fsnotify: fix ignore mask logic in send_to_group() Amir Goldstein
2018-04-13 13:53   ` Jan Kara
2018-04-05 13:18 ` [PATCH v2 03/20] fsnotify: fix typo in a comment about mark->g_list Amir Goldstein
2018-04-13 13:56   ` Jan Kara
2018-04-05 13:18 ` [PATCH v2 04/20] MAINTAINERS: add an entry for FSNOTIFY infrastructure Amir Goldstein
2018-04-13 13:56   ` Jan Kara
2018-04-05 13:18 ` [PATCH v2 05/20] fsnotify: use type id to identify connector object type Amir Goldstein
2018-04-17 16:26   ` Jan Kara
2018-04-17 17:45     ` Amir Goldstein
2018-04-05 13:18 ` [PATCH v2 06/20] fsnotify: remove redundant arguments to handle_event() Amir Goldstein
2018-04-17 16:33   ` Jan Kara
2018-04-17 17:59     ` Amir Goldstein
2018-04-05 13:18 ` [PATCH v2 07/20] fsnotify: introduce marks iteration helpers Amir Goldstein
2018-04-17 16:38   ` Jan Kara
2018-04-17 18:37     ` Amir Goldstein
2018-04-05 13:18 ` [PATCH v2 08/20] fsnotify: generalize iteration of marks by object type Amir Goldstein
2018-04-17 17:01   ` Jan Kara
2018-04-17 19:11     ` Amir Goldstein
2018-04-18  8:34       ` Jan Kara
2018-04-18 12:31         ` Amir Goldstein
2018-04-05 13:18 ` [PATCH v2 09/20] fsnotify: generalize send_to_group() Amir Goldstein
2018-04-05 13:18 ` [PATCH v2 10/20] fanotify: generalize fanotify_should_send_event() Amir Goldstein
2018-04-05 13:18 ` [PATCH v2 11/20] fsnotify: add fsnotify_add_inode_mark() wrappers Amir Goldstein
2018-04-05 13:18 ` [PATCH v2 12/20] fsnotify: introduce prototype struct fsnotify_obj Amir Goldstein
2018-04-19 12:14   ` Jan Kara
2018-04-05 13:18 ` [PATCH v2 13/20] fsnotify: pass fsnotify_obj instead of **connp argument Amir Goldstein
2018-04-05 13:18 ` [PATCH v2 14/20] fsnotify: pass object and object type to fsnotify_add_mark() Amir Goldstein
2018-04-19 12:23   ` Jan Kara
2018-04-19 14:28     ` Amir Goldstein
2018-04-05 13:18 ` [PATCH v2 15/20] fsnotify: make fsnotify_recalc_mask() unaware of object type Amir Goldstein
2018-04-06  9:03   ` kbuild test robot
2018-04-05 13:18 ` [PATCH v2 16/20] fsnotify: generalize fsnotify_detach_connector_from_object() Amir Goldstein
2018-04-19 13:59   ` Jan Kara
2018-04-19 14:07     ` Amir Goldstein
2018-04-05 13:18 ` [PATCH v2 17/20] fsnotify: add super block object type Amir Goldstein
2018-04-06  6:01   ` kbuild test robot
2018-04-06 11:04     ` Amir Goldstein
2018-04-19 12:41       ` Jan Kara
2018-04-19 14:27         ` Amir Goldstein
2018-04-19 12:39   ` Jan Kara
2018-04-05 13:18 ` [PATCH v2 18/20] fsnotify: send path type events to group with super block marks Amir Goldstein
2018-04-19 13:49   ` Jan Kara
2018-04-19 14:19     ` Amir Goldstein
2018-04-05 13:18 ` [PATCH v2 19/20] fanotify: factor out helpers to add/remove mark Amir Goldstein
2018-04-05 13:18 ` [PATCH v2 20/20] fanotify: add API to attach/detach super block mark Amir Goldstein

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.