[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <118833cc0711201911r3684937p38823649639e0a57@mail.gmail.com>
Date: Tue, 20 Nov 2007 22:11:31 -0500
From: "Morten Welinder" <mwelinder@...il.com>
To: linux-kernel <linux-kernel@...r.kernel.org>
Cc: rlove@...ve.org, "Linus Torvalds" <torvalds@...ux-foundation.org>
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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists