linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/9] fanotify: add support for more event types
@ 2018-11-15 18:45 Amir Goldstein
  2018-11-15 18:45 ` [PATCH v2 1/9] fanotify: rename struct fanotify_{,perm_}event_info Amir Goldstein
                   ` (9 more replies)
  0 siblings, 10 replies; 12+ messages in thread
From: Amir Goldstein @ 2018-11-15 18:45 UTC (permalink / raw)
  To: Jan Kara; +Cc: Matthew Bobrowski, linux-fsdevel, linux-api

Jan,

This is the final part of patch series to add support for filesystem
change monitoring to fanotify.

The end game is to use:
  fd = fanotify_init(FAN_CLASS_NOTIF|FAN_REPORT_FID, ...);
  rc = fanotify_mark(fd, FAN_MARK_FILESYSTEM, FAN_CREATE|FAN_DELETE...);
to monitor changes to a large scale namespace.

This functionality was not available with inotify API, which does not
scale well with recursive directory watches and was not available
with fanotify API, which did not support directory modification events.

This patch set depends on the fsnotify prep patches posted yesterday.
The entire work based on your fsnotify branch is available on my
fanotify_dentry branch [1].

I have tested this work with some preliminary LTP tests [2] and a demo
program [3]. Matthew Bobrowski has agreed to help me with writing more
tests and man pages (thanks Matthew!).

Last patch raises a question about how to deal with FAN_ONDIR flag with
new event types and proposed a minimal viable implementation that could
be used as a base for further discussion.

Thanks,
Amir.

[1] https://github.com/amir73il/linux/commits/fanotify_dentry
[2] https://github.com/amir73il/ltp/commits/fanotify_dentry
[3] https://github.com/amir73il/fsnotify-utils/blob/master/src/test/fanotify_demo.c

Amir Goldstein (9):
  fanotify: rename struct fanotify_{,perm_}event_info
  fanotify: define the structures to report a unique file identifier
  fanotify: classify events that hold a file identifier
  fanotify: encode file identifier for FAN_REPORT_FID
  fanotify: copy event fid info to user
  fanotify: enable FAN_REPORT_FID init flag
  fanotify: support events with data type FSNOTIFY_EVENT_DENTRY
  fanotify: add support for create/attrib/move/delete events
  fanotify: report FAN_ONDIR to listener for filename events

 fs/notify/fanotify/fanotify.c      | 199 ++++++++++++++++++++++++-----
 fs/notify/fanotify/fanotify.h      |  76 ++++++++---
 fs/notify/fanotify/fanotify_user.c | 131 ++++++++++++++++---
 fs/statfs.c                        |   3 +-
 include/linux/fanotify.h           |  31 ++++-
 include/linux/statfs.h             |   3 +
 include/uapi/linux/fanotify.h      |  45 ++++++-
 7 files changed, 408 insertions(+), 80 deletions(-)

-- 
2.17.1

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

end of thread, other threads:[~2018-11-20 21:02 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-15 18:45 [PATCH v2 0/9] fanotify: add support for more event types Amir Goldstein
2018-11-15 18:45 ` [PATCH v2 1/9] fanotify: rename struct fanotify_{,perm_}event_info Amir Goldstein
2018-11-15 18:45 ` [PATCH v2 2/9] fanotify: define the structures to report a unique file identifier Amir Goldstein
2018-11-15 18:45 ` [PATCH v2 3/9] fanotify: classify events that hold a " Amir Goldstein
2018-11-15 18:45 ` [PATCH v2 4/9] fanotify: encode file identifier for FAN_REPORT_FID Amir Goldstein
2018-11-15 18:45 ` [PATCH v2 5/9] fanotify: copy event fid info to user Amir Goldstein
2018-11-15 18:45 ` [PATCH v2 6/9] fanotify: enable FAN_REPORT_FID init flag Amir Goldstein
2018-11-15 18:45 ` [PATCH v2 7/9] fanotify: support events with data type FSNOTIFY_EVENT_DENTRY Amir Goldstein
2018-11-15 18:45 ` [PATCH v2 8/9] fanotify: add support for create/attrib/move/delete events Amir Goldstein
2018-11-15 18:45 ` [PATCH v2 9/9] fanotify: report FAN_ONDIR to listener for filename events Amir Goldstein
2018-11-18 12:09 ` [PATCH v2 0/9] fanotify: add support for more event types Amir Goldstein
2018-11-20 10:34   ` Jan Kara

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).