aboutsummaryrefslogtreecommitdiffstats
path: root/main/apk-tools/0001-db-remount-read-only-after-the-file-handles-have-bee.patch
blob: 45b75a33291403bd2a04173ba2f1bd3b994f512d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
From 38e54240a38266c0c1864e51e4ca7468a429646e Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Fri, 27 May 2011 11:38:50 +0000
Subject: [PATCH 1/2] db: remount read-only after the file handles have been
 closed

The apk cache might be on the readonly media so we need wait with
remounting til after atleast this filehandle is closed.
---
 src/database.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/database.c b/src/database.c
index 1d4c573..0fc59df 100644
--- a/src/database.c
+++ b/src/database.c
@@ -1397,12 +1397,6 @@ void apk_db_close(struct apk_database *db)
 	struct hlist_node *dc, *dn;
 	int i;
 
-	if (db->cache_remount_dir) {
-		do_remount(db->cache_remount_dir, "ro");
-		free(db->cache_remount_dir);
-		db->cache_remount_dir = NULL;
-	}
-
 	apk_id_cache_free(&db->id_cache);
 
 	list_for_each_entry(ipkg, &db->installed.packages, installed_pkgs_list) {
@@ -1436,6 +1430,12 @@ void apk_db_close(struct apk_database *db)
 		close(db->lock_fd);
 	if (db->root != NULL)
 		free(db->root);
+
+	if (db->cache_remount_dir) {
+		do_remount(db->cache_remount_dir, "ro");
+		free(db->cache_remount_dir);
+		db->cache_remount_dir = NULL;
+	}
 }
 
 static int fire_triggers(apk_hash_item item, void *ctx)
-- 
1.7.5.2