# # Patch managed by http://www.holgerschurig.de/patcher.html # --- //media/storage/src/linux-2.6.38/fs/notify/fsnotify.c~add_clear_cache_events +++ //media/storage/src/linux-2.6.38/fs/notify/fsnotify.c @@ -140,7 +140,7 @@ } /* clear ignored on inode modification */ - if (mask & FS_MODIFY) { + if (mask & FS_CLEAR_IGNORED_MASK_EVENTS) { if (inode_mark && !(inode_mark->flags & FSNOTIFY_MARK_FLAG_IGNORED_SURV_MODIFY)) inode_mark->ignored_mask = 0; @@ -220,19 +220,19 @@ * otherwise return if neither the inode nor the vfsmount care about * this type of event. */ - if (!(mask & FS_MODIFY) && + if (!(mask & FS_CLEAR_IGNORED_MASK_EVENTS) && !(test_mask & to_tell->i_fsnotify_mask) && !(mnt && test_mask & mnt->mnt_fsnotify_mask)) return 0; idx = srcu_read_lock(&fsnotify_mark_srcu); - if ((mask & FS_MODIFY) || + if ((mask & FS_CLEAR_IGNORED_MASK_EVENTS) || (test_mask & to_tell->i_fsnotify_mask)) inode_node = srcu_dereference(to_tell->i_fsnotify_marks.first, &fsnotify_mark_srcu); - if (mnt && ((mask & FS_MODIFY) || + if (mnt && ((mask & FS_CLEAR_IGNORED_MASK_EVENTS) || (test_mask & mnt->mnt_fsnotify_mask))) { vfsmount_node = srcu_dereference(mnt->mnt_fsnotify_marks.first, &fsnotify_mark_srcu); --- //media/storage/src/linux-2.6.38/include/linux/fsnotify_backend.h~add_clear_cache_events +++ //media/storage/src/linux-2.6.38/include/linux/fsnotify_backend.h @@ -75,6 +75,8 @@ FS_ISDIR | FS_IN_ONESHOT | FS_DN_RENAME | \ FS_DN_MULTISHOT | FS_EVENT_ON_CHILD) +#define FS_CLEAR_IGNORED_MASK_EVENTS (FS_MODIFY | FS_ATTRIB | FS_MOVE_SELF) + struct fsnotify_group; struct fsnotify_event; struct fsnotify_mark;