From 195859b3fd35819b218336f0bdd87eaa55778d56 Mon Sep 17 00:00:00 2001 From: Timo Teras Date: Fri, 24 Jul 2009 14:12:59 +0300 Subject: db: fix repository write locking --- src/database.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/database.c b/src/database.c index 57cae9d..720b7b0 100644 --- a/src/database.c +++ b/src/database.c @@ -872,6 +872,7 @@ int apk_db_open(struct apk_database *db, const char *root, unsigned int flags) } if (db->lock_fd < 0 || flock(db->lock_fd, LOCK_EX | LOCK_NB) < 0) { + msg = "Unable to lock database"; if (apk_wait) { struct sigaction sa, old_sa; @@ -882,14 +883,13 @@ int apk_db_open(struct apk_database *db, const char *root, unsigned int flags) sigaction(SIGALRM, &sa, &old_sa); alarm(apk_wait); - if (flock(db->lock_fd, LOCK_EX) < 0) { - msg = "Unable to lock database"; + if (flock(db->lock_fd, LOCK_EX) < 0) goto ret_errno; - } alarm(0); sigaction(SIGALRM, &old_sa, NULL); - } + } else + goto ret_errno; } } } -- cgit v1.2.3-70-g09d2