Merge pull request #2143 from jlebon/pr/eacces-lock
lib/repo: Handle EACCES for POSIX locking
This commit is contained in:
commit
1b770c5e24
|
|
@ -1933,7 +1933,7 @@ rename_pending_loose_objects (OstreeRepo *self,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Try to lock a transaction stage directory created by
|
/* Try to lock and delete a transaction stage directory created by
|
||||||
* ostree_repo_prepare_transaction().
|
* ostree_repo_prepare_transaction().
|
||||||
*/
|
*/
|
||||||
static gboolean
|
static gboolean
|
||||||
|
|
|
||||||
|
|
@ -5980,7 +5980,9 @@ _ostree_repo_try_lock_tmpdir (int tmpdir_dfd,
|
||||||
if (!glnx_make_lock_file (tmpdir_dfd, lock_name, LOCK_EX | LOCK_NB,
|
if (!glnx_make_lock_file (tmpdir_dfd, lock_name, LOCK_EX | LOCK_NB,
|
||||||
file_lock_out, &local_error))
|
file_lock_out, &local_error))
|
||||||
{
|
{
|
||||||
if (g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_WOULD_BLOCK))
|
/* we need to handle EACCES too in the case of POSIX locks; see F_SETLK in fcntl(2) */
|
||||||
|
if (g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_WOULD_BLOCK)
|
||||||
|
|| g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED))
|
||||||
{
|
{
|
||||||
did_lock = FALSE;
|
did_lock = FALSE;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue