mbox series

[0/7] fsnotify fixes and cleanups

Message ID 20201202120713.702387-1-amir73il@gmail.com (mailing list archive)
Headers show
Series fsnotify fixes and cleanups | expand

Message

Amir Goldstein Dec. 2, 2020, 12:07 p.m. UTC
Jan,

I was working on some non urgent cleanups and stumbled on a bug,
so flushing my patch queue as is.

Patches 1-2 are cleanups needed for the bug fix in patch 3.
This [1] LTP test demonstrates the bug.

Patches 4-5 are pretty simple cleanups that you may or may not like
to apply without the work that they build up to (I started this as
prep work for subtree marks iterator).

Patches 6-7 are optimizations related to ignored mask which we
discussed in the past.  I have written them a while back and had put
them aside because I have no means to run performance tests that will
demonstrate the benefit, which is probably not huge.

Since you suggested those optimizations (at least the first one),
I decided to post and let you choose what to do with them.

Thanks,
Amir.

[1] https://github.com/amir73il/ltp/commits/fsnotify-fixes

Amir Goldstein (7):
  fsnotify: generalize handle_inode_event()
  inotify: convert to handle_inode_event() interface
  fsnotify: fix events reported to watching parent and child
  fsnotify: clarify object type argument
  fsnotify: separate mark iterator type from object type enum
  fsnotify: optimize FS_MODIFY events with no ignored masks
  fsnotify: optimize merging of marks with no ignored masks

 fs/nfsd/filecache.c                  |   2 +-
 fs/notify/dnotify/dnotify.c          |   2 +-
 fs/notify/fanotify/fanotify.c        |  16 +--
 fs/notify/fanotify/fanotify_user.c   |  44 +++++---
 fs/notify/fsnotify.c                 | 147 +++++++++++++++++----------
 fs/notify/group.c                    |   2 +-
 fs/notify/inotify/inotify.h          |   9 +-
 fs/notify/inotify/inotify_fsnotify.c |  47 ++-------
 fs/notify/inotify/inotify_user.c     |   7 +-
 fs/notify/mark.c                     |  30 +++---
 include/linux/fsnotify_backend.h     |  92 +++++++++++------
 kernel/audit_fsnotify.c              |   2 +-
 kernel/audit_tree.c                  |   2 +-
 kernel/audit_watch.c                 |   2 +-
 14 files changed, 233 insertions(+), 171 deletions(-)

Comments

Jan Kara Dec. 3, 2020, 2:52 p.m. UTC | #1
Hi Amir!

On Wed 02-12-20 14:07:06, Amir Goldstein wrote:
> I was working on some non urgent cleanups and stumbled on a bug,
> so flushing my patch queue as is.
> 
> Patches 1-2 are cleanups needed for the bug fix in patch 3.
> This [1] LTP test demonstrates the bug.
> 
> Patches 4-5 are pretty simple cleanups that you may or may not like
> to apply without the work that they build up to (I started this as
> prep work for subtree marks iterator).
> 
> Patches 6-7 are optimizations related to ignored mask which we
> discussed in the past.  I have written them a while back and had put
> them aside because I have no means to run performance tests that will
> demonstrate the benefit, which is probably not huge.
> 
> Since you suggested those optimizations (at least the first one),
> I decided to post and let you choose what to do with them.

Thanks for the fixes and optimizations. For now I've picked up patches 1-3
to my tree (with smaller fixups we talked about - plus I'm not sure where
you've got the "Fixes" tag commit ID from - I've fixed that as well). For
cleanups 4-5, I have no problem with them but also at this point don't see
a strong reason to merge them. I do like optimizations 6-7 but I'd like to
see some numbers on them so I didn't queue them just yet either.

								Honza

> [1] https://github.com/amir73il/ltp/commits/fsnotify-fixes
> 
> Amir Goldstein (7):
>   fsnotify: generalize handle_inode_event()
>   inotify: convert to handle_inode_event() interface
>   fsnotify: fix events reported to watching parent and child
>   fsnotify: clarify object type argument
>   fsnotify: separate mark iterator type from object type enum
>   fsnotify: optimize FS_MODIFY events with no ignored masks
>   fsnotify: optimize merging of marks with no ignored masks
> 
>  fs/nfsd/filecache.c                  |   2 +-
>  fs/notify/dnotify/dnotify.c          |   2 +-
>  fs/notify/fanotify/fanotify.c        |  16 +--
>  fs/notify/fanotify/fanotify_user.c   |  44 +++++---
>  fs/notify/fsnotify.c                 | 147 +++++++++++++++++----------
>  fs/notify/group.c                    |   2 +-
>  fs/notify/inotify/inotify.h          |   9 +-
>  fs/notify/inotify/inotify_fsnotify.c |  47 ++-------
>  fs/notify/inotify/inotify_user.c     |   7 +-
>  fs/notify/mark.c                     |  30 +++---
>  include/linux/fsnotify_backend.h     |  92 +++++++++++------
>  kernel/audit_fsnotify.c              |   2 +-
>  kernel/audit_tree.c                  |   2 +-
>  kernel/audit_watch.c                 |   2 +-
>  14 files changed, 233 insertions(+), 171 deletions(-)
> 
> -- 
> 2.25.1
>