From: Lennart Poettering Date: Thu, 3 Mar 2011 23:22:00 +0000 (+0100) Subject: path: don't use IN_ATTRIB on parent dirs when watching a file, since those cannot... X-Git-Tag: v20~31 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=3fc546f93d92c09188d5018ea47def33b149c2e9;p=elogind.git path: don't use IN_ATTRIB on parent dirs when watching a file, since those cannot be removed without emptying the dir first anyway and we need IN_ATTRIB only to detect the link count dropping to 0 --- diff --git a/TODO b/TODO index 820391dbc..36c738e4e 100644 --- a/TODO +++ b/TODO @@ -11,9 +11,6 @@ F15: * load EnvironmentFile= when starting services, not when reloading configuration https://bugzilla.redhat.com/show_bug.cgi?id=661282 -* drop IN_ATTRIB from inotify watches for .path units where possible to avoid - lots of wakeups due to /dev changing when we watch a subdir of /dev. - * NFS, networkmanager ordering issue * add fstab fields to add wait timeouts, change Wants to Requires by local-fs.target diff --git a/src/path.c b/src/path.c index bd40ab6f9..1455b4799 100644 --- a/src/path.c +++ b/src/path.c @@ -223,9 +223,9 @@ static int path_watch_one(Path *p, PathSpec *s) { /* Trim the path at the last slash. Keep the slash if it's the root dir. */ slash[slash == k] = 0; - flags = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB; + flags = IN_MOVE_SELF; if (!exists) - flags |= IN_CREATE | IN_MOVED_TO; + flags |= IN_DELETE_SELF | IN_ATTRIB | IN_CREATE | IN_MOVED_TO; if (inotify_add_watch(s->inotify_fd, k, flags) >= 0) exists = true;