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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]