[systemd-devel] [PATCH 2/2] path: do not watch IN_ATTRIB for parent directories

Michal Schmidt mschmidt at redhat.com
Wed Dec 1 07:05:57 PST 2010


On Wed, 1 Dec 2010 15:53:54 +0100 Kay Sievers wrote:
> On Wed, Dec 1, 2010 at 15:39, Michal Schmidt <mschmidt at redhat.com>
> wrote:
> 
> >  inotify_add_watch(17, "/dev/.systemd/ask-password",
> > IN_ATTRIB|IN_MOVED_TO|IN_CREATE|IN_DELETE_SELF|IN_MOVE_SELF) = 1
> > inotify_add_watch(17, "/dev/.systemd",
> > IN_ATTRIB|IN_DELETE_SELF|IN_MOVE_SELF) = 2 inotify_add_watch(17,
> > "/dev", IN_ATTRIB|IN_DELETE_SELF|IN_MOVE_SELF) = 3
> > inotify_add_watch(17, "/", IN_ATTRIB|IN_DELETE_SELF|IN_MOVE_SELF) =
> > 4
> 
> Any idea why the heck we want to watch all parent dirs?

I think it's this way in order to simulate a strict path-based watch,
as opposed to an inode-based one.
For cases when someone recreates the directory hierarchy in a weird
way, like:
 # a watch is set on /foo/bar/baz
 mv /foo/bar /foo/qux
 mkdir -p /foo/bar/baz  # a completely NEW /foo/bar/baz inode

Michal


More information about the systemd-devel mailing list