From fd6ba80d0734663f0b239c145d3b099ae12566ad Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Mon, 21 Nov 2016 16:05:55 -0800 Subject: [PATCH] ostree-repo: Make the lock with a long-lasting FD glnx_make_lock_file requires that the dfd passed in survives the lifetime of the lock. Since dfd_iter.fd gets cleaned up after the function returns, this isn't the case. dfd_iter.fd should be equivalent to tmpdir_dfd, since we iter on ".", and that survives past the function, so just use that instead. Closes: #591 Approved by: cgwalters --- src/libostree/ostree-repo.c | 2 +- tests/test-admin-deploy-bootid-gc.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libostree/ostree-repo.c b/src/libostree/ostree-repo.c index 25893fca..8aa76dac 100644 --- a/src/libostree/ostree-repo.c +++ b/src/libostree/ostree-repo.c @@ -4869,7 +4869,7 @@ _ostree_repo_allocate_tmpdir (int tmpdir_dfd, /* We put the lock outside the dir, so we can hold the lock * until the directory is fully removed */ - if (!_ostree_repo_try_lock_tmpdir (dfd_iter.fd, dent->d_name, + if (!_ostree_repo_try_lock_tmpdir (tmpdir_dfd, dent->d_name, file_lock_out, &did_lock, error)) goto out; diff --git a/tests/test-admin-deploy-bootid-gc.sh b/tests/test-admin-deploy-bootid-gc.sh index ba16f336..29360e38 100755 --- a/tests/test-admin-deploy-bootid-gc.sh +++ b/tests/test-admin-deploy-bootid-gc.sh @@ -51,7 +51,7 @@ fi newstagepath=$(ls -d sysroot/ostree/repo/tmp/staging-${NEW_TEST_BOOTID}-*) assert_has_dir "${newstagepath}" env OSTREE_BOOTID=${NEW_TEST_BOOTID} ${CMD_PREFIX} ostree admin deploy --karg=root=LABEL=MOO --karg=quiet --os=testos testos:testos/buildmaster/x86_64-runtime -newstagepath=$(ls -d sysroot/ostree/repo/tmp/staging-${NEW_TEST_BOOTID}-*) +newstagepath=$(echo sysroot/ostree/repo/tmp/staging-${NEW_TEST_BOOTID}-*) assert_not_has_dir "${stagepath}" assert_not_has_dir "${newstagepath}"