# \[PATCH v3 00/11\] Extend fanotify dirent events

- Subsystems: DIRECTORY NOTIFICATION (DNOTIFY), FANOTIFY, FILESYSTEMS (VFS and infrastructure), FSNOTIFY: FILESYSTEM NOTIFICATION INFRASTRUCTURE, THE REST
- Maintainers: Jan Kara, Alexander Viro, Christian Brauner, Linus Torvalds
- Series: 11 patches touching 12 files, +500/-157
- Status: LANDED
- Landed in mainline.
- Revision v3 (2 revisions archived).
- List: linux-api
- 3 messages, 2 authors
- Page: https://ratatoskr.run/linux-api/2021/11/219040/t

## \[PATCH v3 00/11\] Extend fanotify dirent events

- From: Amir Goldstein \<amir73il@gmail.com\>
- Date: 2021-11-29 22:29:42 
- Message: https://ratatoskr.run/linux-api/2021/11/219040.md

```text
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(-)

-- 
2.33.1

```

## Re: \[PATCH v3 00/11\] Extend fanotify dirent events

- From: Jan Kara \<jack@suse.cz\>
- Date: 2021-12-15 17:45:56 
- Message: https://ratatoskr.run/linux-api/2021/12/220002.md

```text
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
> 
-- 
Jan Kara [ref]
SUSE Labs, CR
```

## Re: \[PATCH v3 00/11\] Extend fanotify dirent events

- From: Amir Goldstein \<amir73il@gmail.com\>
- Date: 2021-12-15 18:49:19 
- Message: https://ratatoskr.run/linux-api/2021/12/220003.md

```text
On Wed, Dec 15, 2021 at 7:45 PM Jan Kara [ref] 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.
```
