summaryrefslogtreecommitdiff
path: root/src/path.c
AgeCommit message (Collapse)Author
2012-01-16unit: use safe downcasts, remove pointless castsMichal Schmidt
Always use the macros for downcasting. Remove a few obviously pointless casts.
2012-01-16unit: use the UNIT() macro consistentlyMichal Schmidt
The UNIT() macro upcasts from specific unit types to the base Unit. Use it everywhere, rather than accessing the 'meta' member directly.
2012-01-16unit: remove union UnitMichal Schmidt
Now that objects of all unit types are allocated the exact amount of memory they need, the Unit union has lost its purpose. Remove it. "Unit" is a more natural name for the base unit class than "Meta", so rename Meta to Unit. Access to members of the base class gets simplified.
2012-01-16unit: reduce heap usage for unit objectsMichal Schmidt
The storage of the unit objects on the heap is currently not very efficient. For every unit object we allocate a chunk of memory as large as the biggest unit type, although there are significant differences in the units' real requirements. pahole shows the following sizes of structs: 488 Target 496 Snapshot 512 Device 528 Path 560 Timer 576 Automount 1080 Socket 1160 Swap 1168 Service 1280 Mount Usually there aren't many targets or snapshots in the system, but Device is one of the most common unit types and for every one we waste 1280 - 512 = 768 bytes. Fix it by allocating only the right amount for the given unit type. On my machine (x86_64, with 39 LVM volumes) this decreases systemd's USS (unique set size) by more than 300 KB.
2012-01-06unit: properly update references to units which are mergedLennart Poettering
When we merge units that some kind of object points to, those pointers might become invalidated, and needs to be updated. Introduce a UnitRef struct which links up all the unit references, to ensure corrected references. At the same time, drop configured_sockets in the Service object, and replace it by proper UNIT_TRIGGERS resp. UNIT_TRIGGERED_BY dependencies, which allow us to simplify a lot of code.
2011-12-08path: add missing pieces for PathModifiedMichal Schmidt
PATH_MODIFIED worked internally for PID files detection, but was unusable in units.
2011-12-03path: add PathModified (= PathChanged + IN_MODIFY)Michal Schmidt
2011-12-03path: refactor PathSpec usageMichal Schmidt
path_*() functions operate on "Path *p" and they do not touch PathSpec internals directly. pathspec_*() functions operate on "PathSpec *s". The PathSpec class will be useful outside of path.c.
2011-12-03path: use %m instead of strerror(errno)Michal Schmidt
and strerror(-errno) was just wrong.
2011-09-23coverity: fix a couple of bugs found by coverityLennart Poettering
2011-08-01load-fragment: speed up parsing by using a perfect hash table with ↵Lennart Poettering
configuration settings built by gperf
2011-07-07path,unit: support globbing in conditions and path unitsLennart Poettering
2011-06-21english: s/_per_/_by_/Lennart Poettering
2011-04-28path: simplify recheck logicLennart Poettering
2011-04-10path: optionally, create watched directories in .path unitsLennart Poettering
2011-03-04path: after installing inotify watches, recheck file again to fix raceLennart Poettering
2011-03-04path: don't use IN_ATTRIB on parent dirs when watching a file, since those ↵Lennart Poettering
cannot be removed without emptying the dir first anyway and we need IN_ATTRIB only to detect the link count dropping to 0
2011-01-20service: when reloading a service fails don't fail the entire service but ↵Lennart Poettering
just the reload job
2010-12-01path: fix watching the root directoryMichal Schmidt
If you have a path unit with: DirectoryNotEmpty=/foo and "/foo" does not exist, creating it later escapes the attention of systemd. When adding watches for parent directories, systemd never adds one for the root directory. It attempts to add a watch for an empty string instead, which fails. If the path is "/", we must not trim the slash.
2010-11-16path: don't mention too many inotify msgsLennart Poettering
2010-11-15path: properly free PathSpec structsLennart Poettering
2010-11-15unit: introduce ConditionDirectoryNotEmpty=Lennart Poettering
2010-11-15path: avoid immediate restarting of units triggered by paths if nothing ↵Lennart Poettering
actually changed on disk
2010-11-15path: always look for IN_ATTRIB since deletion is signalled that wayLennart Poettering
2010-10-29units: order units by default before appropriate targets in case they are ↵Lennart Poettering
pulled indirectly
2010-10-29unit: get rid of gnoreDependencyFailure= instead treat ConflictedBy= as ↵Lennart Poettering
weaker counterpart of Conflicts=, similar to Wants= vs. Requires=
2010-10-13inotify: properly handle multiple inotify events per read()Lennart Poettering
2010-10-08unit: introduce 'banned' load state for units symlinked to /dev/nullLennart Poettering
2010-08-31manager: add missing second part of s/maintenance/failed/Matthew Miller
2010-08-20dbus: follow standardized fdo PropertiesChanged signal specLennart Poettering
2010-08-14emacs: make sure nobody accidently adds tabs to our sourcesLennart Poettering
2010-08-11clang: fix numerous little issues found with clang-analyzerLennart Poettering
2010-08-09manager: when two pending jobs conflict, keep the one that "conflicts", ↵Lennart Poettering
remove the one that is "conflicted" This gives the writer of units control which unit is kept and which is stopped when two units conflict.
2010-07-19systemctl: introduce reset-maintenance commandLennart Poettering
2010-07-16path,timer: order units after sysinit by defaultLennart Poettering
2010-07-13socket: when the socket is supposed to stop, don't accept any connections ↵Lennart Poettering
anymore
2010-07-08dbus: make errors reported via D-Bus more usefulLennart Poettering
2010-07-03unit: add DefaultDependencies= settingLennart Poettering
In order to simplify writing of unit files introduce default dependencies that are added to all units unless explictly disabled in a unit. This option can be switched off for select units that are involved in early boot-up ot late system shutdown, This should simplify service files for most normal daemons, but breaks existing service files for software involved in early boot (notably udev), which need to be updated for a DefaultDependencies=no setting)
2010-07-03unit: simplify things a little by introducing API to add two dependencies in ↵Lennart Poettering
one step
2010-07-01unit: shorten active state enums to make systemctl output nicerLennart Poettering
2010-07-01unit: add new abstracted maintenance state for unitsLennart Poettering
2010-06-19unit: get rid of various unnecessary castsLennart Poettering
2010-06-16typo: the correct spelling is maintenance not maintainanceLennart Poettering
2010-05-24path: add .path unit type for monitoring filesLennart Poettering