Messages in this thread | | | Date | Tue, 20 Nov 2007 22:11:31 -0500 | From | "Morten Welinder" <> | Subject | Inotify fails to send IN_ATTRIB events |
| |
I am seeing missing inotify IN_ATTRIB events in the following situation:
1. "touch foo"
2. Make inotify watch "foo"
3. "ln foo bar" --> Link count changed so I should have gotten an IN_ATTRIB.
4. "rm foo" --> Link count changed so I should have gotten an IN_ATTRIB. (Or IN_DELETE_SELF; I don't care which.)
5. "ln bar foo && rm bar" --> Still no events.
6. "mv foo bar" --> I get IN_MOVED_SELF. Good!
7. "mv bar foo" --> I get IN_MOVED_SELF. Good!
3+4 is pretty much the same as 6, so I really ought to be told that my file has changed name. I don't really care much about getting notified about 3, but for completeness it ought to be handled.
As far as I can see, the only way to be told about 4 is to put a watch on the directory in which foo resides. That is inelegant and has an inherent race condition.
This is with "Linux version 2.6.22.12-0.1-default" (SuSE 10.3)
Looking at current source, fs/namei.c, I notice that vfs_rename has a fsnotify_move call (which notified directory as well as files) whereas sys_link only has a fsnotify_create call (which notified the directory only).
Morten - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |