summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2011-03-04 00:22:00 +0100
committerLennart Poettering <lennart@poettering.net>2011-03-04 00:22:00 +0100
commit3fc546f93d92c09188d5018ea47def33b149c2e9 (patch)
treed99dcc202427a640310640dbadf92caf03824165
parent430c18ed7f576fd9041b0a02e7c4210bdd020a25 (diff)
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
-rw-r--r--TODO3
-rw-r--r--src/path.c4
2 files changed, 2 insertions, 5 deletions
diff --git a/TODO b/TODO
index 820391dbc7..36c738e4e7 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 bd40ab6f99..1455b47995 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;