del: proper ordering of file db entry deletion
parent
298b5994ce
commit
1a9cc552a5
|
@ -1051,8 +1051,6 @@ static void apk_db_purge_pkg(struct apk_database *db,
|
||||||
diri->dir->dirname,
|
diri->dir->dirname,
|
||||||
file->filename);
|
file->filename);
|
||||||
|
|
||||||
file->diri = NULL;
|
|
||||||
|
|
||||||
key = (struct apk_db_file_hash_key) {
|
key = (struct apk_db_file_hash_key) {
|
||||||
.dirname = APK_BLOB_STR(diri->dir->dirname),
|
.dirname = APK_BLOB_STR(diri->dir->dirname),
|
||||||
.filename = APK_BLOB_STR(file->filename),
|
.filename = APK_BLOB_STR(file->filename),
|
||||||
|
@ -1061,7 +1059,7 @@ static void apk_db_purge_pkg(struct apk_database *db,
|
||||||
APK_BLOB_BUF(&key));
|
APK_BLOB_BUF(&key));
|
||||||
unlink(name);
|
unlink(name);
|
||||||
__hlist_del(fc, &diri->owned_files.first);
|
__hlist_del(fc, &diri->owned_files.first);
|
||||||
|
file->diri = NULL;
|
||||||
db->installed.stats.files--;
|
db->installed.stats.files--;
|
||||||
}
|
}
|
||||||
apk_db_diri_rmdir(diri);
|
apk_db_diri_rmdir(diri);
|
||||||
|
|
|
@ -100,9 +100,8 @@ void apk_hash_delete(struct apk_hash *h, apk_blob_t key)
|
||||||
if (h->ops->compare_item(item, key) == 0) {
|
if (h->ops->compare_item(item, key) == 0) {
|
||||||
hlist_del(pos, &h->buckets->item[hash]);
|
hlist_del(pos, &h->buckets->item[hash]);
|
||||||
h->ops->delete_item(item);
|
h->ops->delete_item(item);
|
||||||
return;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
hlist_for_each(pos, &h->buckets->item[hash]) {
|
hlist_for_each(pos, &h->buckets->item[hash]) {
|
||||||
|
@ -111,7 +110,7 @@ void apk_hash_delete(struct apk_hash *h, apk_blob_t key)
|
||||||
if (h->ops->compare(key, itemkey) == 0) {
|
if (h->ops->compare(key, itemkey) == 0) {
|
||||||
hlist_del(pos, &h->buckets->item[hash]);
|
hlist_del(pos, &h->buckets->item[hash]);
|
||||||
h->ops->delete_item(item);
|
h->ops->delete_item(item);
|
||||||
return;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue