chiark / gitweb /
core: if two start jobs for the same swap device node are queued, only dispatch one...
authorLennart Poettering <lennart@poettering.net>
Tue, 27 Jan 2015 23:38:38 +0000 (00:38 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 27 Jan 2015 23:38:38 +0000 (00:38 +0100)
commit37cf8fee46025d704660a9fc1d1349fe7d0b139d
treead519ff7f56ec9e494fa47f3e438fe57351f5a31
parentcaac2704d57ef6d95f7053456479353bae3638de
core: if two start jobs for the same swap device node are queued, only dispatch one of them at a time

If two start jobs for two seperate .swap device nodes are queued, which
then turns out to be referring to the same device node, refuse
dispatching more than one of them at the same time.

This should solve an issue when the same swap partition is found via GPT
auto-discovery and via /etc/fstab, where one uses a symlink path, and
the other the raw devce node. So far we might have ended up invoking
mkswap on the same node at the very same time with the two device node
names.

With this change only one mkswap should be executed at a time. THis
mkswap should have immediate effect on the other swap unit, due to the
state in /proc/swaps changing, and thus suppressing actual invocation of
the second mkswap.

http://lists.freedesktop.org/archives/systemd-devel/2015-January/027314.html
src/core/swap.c