From 366e7d07ae20d18cfc5f9f12588a0371654f956a Mon Sep 17 00:00:00 2001 From: Timo Teras Date: Mon, 21 Dec 2009 11:42:39 +0200 Subject: db: read time only once when writing scriptsdb less syscalls. --- src/database.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/database.c b/src/database.c index f06eba4..2e3ed61 100644 --- a/src/database.c +++ b/src/database.c @@ -642,6 +642,7 @@ static int apk_db_scriptdb_write(struct apk_database *db, struct apk_ostream *os char filename[256]; apk_blob_t bfn; int r, i; + time_t now = time(NULL); list_for_each_entry(ipkg, &db->installed.packages, installed_pkgs_list) { pkg = ipkg->pkg; @@ -654,6 +655,7 @@ static int apk_db_scriptdb_write(struct apk_database *db, struct apk_ostream *os .name = filename, .size = ipkg->script[i].len, .mode = 0755 | S_IFREG, + .mtime = now, }; /* The scripts db expects file names in format: * pkg-version..action */ @@ -1892,7 +1894,7 @@ static void apk_db_migrate_files(struct apk_database *db, } else { /* check if want keep existing files */ if ((apk_flags & APK_NEVER_OVERWRITE) && - (faccessat(db->root_fd, name, F_OK, + (faccessat(db->root_fd, name, F_OK, AT_SYMLINK_NOFOLLOW) == 0)) { unlinkat(db->root_fd, tmpname, 0); } else { -- cgit v1.2.3-70-g09d2