From: Lennart Poettering Date: Sun, 14 Nov 2010 23:47:29 +0000 (+0100) Subject: path: always look for IN_ATTRIB since deletion is signalled that way X-Git-Tag: v12~31 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=782195a3c31a79428874a32e0264c0aa97a664f7 path: always look for IN_ATTRIB since deletion is signalled that way --- diff --git a/TODO b/TODO index 645b075f3..f68e6dece 100644 --- a/TODO +++ b/TODO @@ -80,7 +80,7 @@ * automatically determine TERM= based on tty name. (TERM=linux vs. TERM=vt100-nav) -* declare /etc/system-release cross-distro standard +* declare /etc/os-release cross-distro standard Pre v12: diff --git a/src/path.c b/src/path.c index f62157e80..3e2856920 100644 --- a/src/path.c +++ b/src/path.c @@ -181,9 +181,9 @@ static void path_unwatch_one(Path *p, PathSpec *s) { static int path_watch_one(Path *p, PathSpec *s) { static const int flags_table[_PATH_TYPE_MAX] = { - [PATH_EXISTS] = IN_DELETE_SELF|IN_MOVE_SELF, + [PATH_EXISTS] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB, [PATH_CHANGED] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CLOSE_WRITE|IN_CREATE|IN_DELETE|IN_MOVED_FROM|IN_MOVED_TO, - [PATH_DIRECTORY_NOT_EMPTY] = IN_DELETE_SELF|IN_MOVE_SELF|IN_CREATE|IN_MOVED_TO + [PATH_DIRECTORY_NOT_EMPTY] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB|IN_CREATE|IN_MOVED_TO }; bool exists = false; @@ -221,9 +221,9 @@ static int path_watch_one(Path *p, PathSpec *s) { *slash = 0; - flags = IN_DELETE_SELF|IN_MOVE_SELF; + flags = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB; if (!exists) - flags |= IN_CREATE | IN_MOVED_TO | IN_ATTRIB; + flags |= IN_CREATE | IN_MOVED_TO; if (inotify_add_watch(s->inotify_fd, k, flags) >= 0) exists = true;