mbox series

[v3,00/11] Extend fanotify dirent events

Message ID 20211129201537.1932819-1-amir73il@gmail.com (mailing list archive)
Headers show
Series Extend fanotify dirent events | expand

Message

Amir Goldstein Nov. 29, 2021, 8:15 p.m. UTC
Jan,

This is the 3rd version of patches to add FAN_REPORT_TARGET_FID group
flag and FAN_RENAME event.

Patches [1] LTP test [2] and man page draft [3] are available on my
github.

Thanks,
Amir.

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

Changes since v2:
- Rebase on v5.16-rc3
- Separate mark iterator type from object type enum
- Use dedicated iter type for 2nd dir
- Use iter type report mask to indicate if old and/or new
  dir are watching FAN_RENAME

Amir Goldstein (11):
  fsnotify: clarify object type argument
  fsnotify: separate mark iterator type from object type enum
  fanotify: introduce group flag FAN_REPORT_TARGET_FID
  fsnotify: generate FS_RENAME event with rich information
  fanotify: use macros to get the offset to fanotify_info buffer
  fanotify: use helpers to parcel fanotify_info buffer
  fanotify: support secondary dir fh and name in fanotify_info
  fanotify: record old and new parent and name in FAN_RENAME event
  fanotify: record either old name new name or both for FAN_RENAME
  fanotify: report old and/or new parent+name in FAN_RENAME event
  fanotify: wire up FAN_RENAME event

 fs/notify/dnotify/dnotify.c        |   2 +-
 fs/notify/fanotify/fanotify.c      | 213 ++++++++++++++++++++++-------
 fs/notify/fanotify/fanotify.h      | 142 +++++++++++++++++--
 fs/notify/fanotify/fanotify_user.c |  82 +++++++++--
 fs/notify/fsnotify.c               |  53 ++++---
 fs/notify/group.c                  |   2 +-
 fs/notify/mark.c                   |  31 +++--
 include/linux/dnotify.h            |   2 +-
 include/linux/fanotify.h           |   5 +-
 include/linux/fsnotify.h           |   9 +-
 include/linux/fsnotify_backend.h   |  74 +++++-----
 include/uapi/linux/fanotify.h      |  12 ++
 12 files changed, 485 insertions(+), 142 deletions(-)

Comments

Jan Kara Dec. 15, 2021, 5:45 p.m. UTC | #1
Hello Amir!

On Mon 29-11-21 22:15:26, Amir Goldstein wrote:
> This is the 3rd version of patches to add FAN_REPORT_TARGET_FID group
> flag and FAN_RENAME event.
> 
> Patches [1] LTP test [2] and man page draft [3] are available on my
> github.

I'm sorry it took so long but I was sick for a week and a bit and so things
got delayed. I've looked through the changes and they look good to me. I've
just modified patch 9/11 to pass around just mask of marks matching the
event instead of full struct fsnotify_iter_info. I understand you wanted to
reuse the fanotify_should_report_type() helpers etc. but honestly I don't
think it was bringing much clarity. The result is pushed out to fsnotify &
for_next branches in my tree. Thanks for your work!

								Honza

> [1] https://github.com/amir73il/linux/commits/fan_rename-v3
> [2] https://github.com/amir73il/ltp/commits/fan_rename
> [2] https://github.com/amir73il/man-pages/commits/fan_rename
> 
> Changes since v2:
> - Rebase on v5.16-rc3
> - Separate mark iterator type from object type enum
> - Use dedicated iter type for 2nd dir
> - Use iter type report mask to indicate if old and/or new
>   dir are watching FAN_RENAME
> 
> Amir Goldstein (11):
>   fsnotify: clarify object type argument
>   fsnotify: separate mark iterator type from object type enum
>   fanotify: introduce group flag FAN_REPORT_TARGET_FID
>   fsnotify: generate FS_RENAME event with rich information
>   fanotify: use macros to get the offset to fanotify_info buffer
>   fanotify: use helpers to parcel fanotify_info buffer
>   fanotify: support secondary dir fh and name in fanotify_info
>   fanotify: record old and new parent and name in FAN_RENAME event
>   fanotify: record either old name new name or both for FAN_RENAME
>   fanotify: report old and/or new parent+name in FAN_RENAME event
>   fanotify: wire up FAN_RENAME event
> 
>  fs/notify/dnotify/dnotify.c        |   2 +-
>  fs/notify/fanotify/fanotify.c      | 213 ++++++++++++++++++++++-------
>  fs/notify/fanotify/fanotify.h      | 142 +++++++++++++++++--
>  fs/notify/fanotify/fanotify_user.c |  82 +++++++++--
>  fs/notify/fsnotify.c               |  53 ++++---
>  fs/notify/group.c                  |   2 +-
>  fs/notify/mark.c                   |  31 +++--
>  include/linux/dnotify.h            |   2 +-
>  include/linux/fanotify.h           |   5 +-
>  include/linux/fsnotify.h           |   9 +-
>  include/linux/fsnotify_backend.h   |  74 +++++-----
>  include/uapi/linux/fanotify.h      |  12 ++
>  12 files changed, 485 insertions(+), 142 deletions(-)
> 
> -- 
> 2.33.1
>
Amir Goldstein Dec. 15, 2021, 6:49 p.m. UTC | #2
On Wed, Dec 15, 2021 at 7:45 PM Jan Kara <jack@suse.cz> wrote:
>
> Hello Amir!
>
> On Mon 29-11-21 22:15:26, Amir Goldstein wrote:
> > This is the 3rd version of patches to add FAN_REPORT_TARGET_FID group
> > flag and FAN_RENAME event.
> >
> > Patches [1] LTP test [2] and man page draft [3] are available on my
> > github.
>
> I'm sorry it took so long but I was sick for a week and a bit and so things
> got delayed. I've looked through the changes and they look good to me. I've
> just modified patch 9/11 to pass around just mask of marks matching the
> event instead of full struct fsnotify_iter_info. I understand you wanted to
> reuse the fanotify_should_report_type() helpers etc. but honestly I don't
> think it was bringing much clarity. The result is pushed out to fsnotify

I understand why you don't like using fsnotify_iter_info.
Result looks very nice to me.

Thanks,
Amir.