nspawn: always take exclusive locks of ephemeral OS tree copies

This commit is contained in:
Lennart Poettering 2019-07-25 11:17:23 +02:00
parent cd6e3914f7
commit 6992459c12
1 changed files with 5 additions and 2 deletions

View File

@ -4774,7 +4774,9 @@ static int run(int argc, char *argv[]) {
goto finish;
}
r = image_path_lock(np, (arg_read_only ? LOCK_SH : LOCK_EX) | LOCK_NB, &tree_global_lock, &tree_local_lock);
/* We take an exclusive lock on this image, since it's our private, ephemeral copy
* only owned by us and noone else. */
r = image_path_lock(np, LOCK_EX|LOCK_NB, &tree_global_lock, &tree_local_lock);
if (r < 0) {
log_error_errno(r, "Failed to lock %s: %m", np);
goto finish;
@ -4894,7 +4896,8 @@ static int run(int argc, char *argv[]) {
goto finish;
}
r = image_path_lock(np, (arg_read_only ? LOCK_SH : LOCK_EX) | LOCK_NB, &tree_global_lock, &tree_local_lock);
/* Always take an exclusive lock on our own ephemeral copy. */
r = image_path_lock(np, LOCK_EX|LOCK_NB, &tree_global_lock, &tree_local_lock);
if (r < 0) {
r = log_error_errno(r, "Failed to create image lock: %m");
goto finish;