1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-25 01:34:28 +03:00

importd: take a lock while we set up /var/lib/machines/

This way, we can safely set up the directories from two processes at the
same time, including machined and importd simultaneously.
This commit is contained in:
Lennart Poettering 2015-03-01 16:46:50 +01:00
parent 432cea0087
commit 403e5b3230

View File

@ -161,6 +161,7 @@ fail:
}
int setup_machine_directory(sd_bus_error *error) {
_cleanup_release_lock_file_ LockFile lock_file = LOCK_FILE_INIT;
struct loop_info64 info = {
.lo_flags = LO_FLAGS_AUTOCLEAR,
};
@ -170,6 +171,11 @@ int setup_machine_directory(sd_bus_error *error) {
bool tmpdir_made = false, mntdir_made = false, mntdir_mounted = false;
int r, nr = -1;
/* Make sure we only set the directory up once at a time */
r = make_lock_file("/run/systemd/machines.lock", LOCK_EX, &lock_file);
if (r < 0)
return r;
r = check_btrfs();
if (r < 0)
return sd_bus_error_set_errnof(error, r, "Failed to determine whether /var/lib/machines is located on btrfs: %m");