From: Jasper St. Pierre Date: Tue, 22 Nov 2016 00:05:55 +0000 (-0800) Subject: ostree-repo: Make the lock with a long-lasting FD X-Git-Tag: archive/raspbian/2022.1-3+rpi1~1^2~4^2~43^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=fd6ba80d0734663f0b239c145d3b099ae12566ad;p=ostree.git 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 --- 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}"