diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/archives.c | 2 | ||||
-rw-r--r-- | src/filesdb.c | 47 | ||||
-rw-r--r-- | src/main.h | 13 | ||||
-rw-r--r-- | src/querycmd.c | 2 | ||||
-rw-r--r-- | src/remove.c | 8 | ||||
-rw-r--r-- | src/unpack.c | 17 | ||||
-rw-r--r-- | src/verify.c | 2 |
7 files changed, 32 insertions, 59 deletions
diff --git a/src/archives.c b/src/archives.c index 9b736a5d9..c80db7fcd 100644 --- a/src/archives.c +++ b/src/archives.c @@ -198,7 +198,7 @@ filesavespackage(struct fileinlist *file, * we shouldn't try to make it take over this shared directory. */ debug(dbg_eachfiledetail,"filesavespackage ... is 3rd package"); - if (!thirdpkg->clientdata->fileslistvalid) { + if (!thirdpkg->files_list_valid) { debug(dbg_eachfiledetail, "process_archive ... already disappeared!"); continue; } diff --git a/src/filesdb.c b/src/filesdb.c index 8ca613e24..22aad89e0 100644 --- a/src/filesdb.c +++ b/src/filesdb.c @@ -67,18 +67,14 @@ ensure_package_clientdata(struct pkginfo *pkg) pkg->clientdata->istobe = PKG_ISTOBE_NORMAL; pkg->clientdata->color = PKG_CYCLE_WHITE; pkg->clientdata->enqueued = false; - pkg->clientdata->fileslistvalid = false; - pkg->clientdata->files = NULL; pkg->clientdata->replacingfilesandsaid = 0; pkg->clientdata->cmdline_seen = 0; - pkg->clientdata->listfile_phys_offs = 0; pkg->clientdata->trigprocdeferred = NULL; } void note_must_reread_files_inpackage(struct pkginfo *pkg) { allpackagesdone = false; - ensure_package_clientdata(pkg); - pkg->clientdata->fileslistvalid = false; + pkg->files_list_valid = false; } enum pkg_filesdb_load_status { @@ -97,11 +93,7 @@ pkg_files_blank(struct pkginfo *pkg) { struct fileinlist *current; - /* Anything to empty? */ - if (!pkg->clientdata) - return; - - for (current= pkg->clientdata->files; + for (current = pkg->files; current; current= current->next) { struct pkg_list *pkg_node, *pkg_prev = NULL; @@ -125,7 +117,7 @@ pkg_files_blank(struct pkginfo *pkg) pkg_prev = pkg_node; } } - pkg->clientdata->files = NULL; + pkg->files = NULL; } static struct fileinlist ** @@ -135,10 +127,8 @@ pkg_files_add_file(struct pkginfo *pkg, struct filenamenode *namenode, struct fileinlist *newent; struct pkg_list *pkg_node; - ensure_package_clientdata(pkg); - if (file_tail == NULL) - file_tail = &pkg->clientdata->files; + file_tail = &pkg->files; /* Make sure we're at the end. */ while ((*file_tail) != NULL) { @@ -175,16 +165,15 @@ ensure_packagefiles_available(struct pkginfo *pkg) struct stat stat_buf; char *loaded_list, *loaded_list_end, *thisline, *nextline, *ptr; - if (pkg->clientdata && pkg->clientdata->fileslistvalid) + if (pkg->files_list_valid) return; - ensure_package_clientdata(pkg); /* Throw away any stale data, if there was any. */ pkg_files_blank(pkg); /* Packages which aren't installed don't have a files list. */ if (pkg->status == PKG_STAT_NOTINSTALLED) { - pkg->clientdata->fileslistvalid = true; + pkg->files_list_valid = true; return; } @@ -205,8 +194,8 @@ ensure_packagefiles_available(struct pkginfo *pkg) "package has no files currently installed"), pkg_name(pkg, pnaw_nonambig)); } - pkg->clientdata->files = NULL; - pkg->clientdata->fileslistvalid = true; + pkg->files = NULL; + pkg->files_list_valid = true; return; } @@ -228,7 +217,7 @@ ensure_packagefiles_available(struct pkginfo *pkg) ohshite(_("reading files list for package '%.250s'"), pkg_name(pkg, pnaw_nonambig)); - lendp= &pkg->clientdata->files; + lendp = &pkg->files; thisline = loaded_list; while (thisline < loaded_list_end) { struct filenamenode *namenode; @@ -259,21 +248,21 @@ ensure_packagefiles_available(struct pkginfo *pkg) onerr_abort--; - pkg->clientdata->fileslistvalid = true; + pkg->files_list_valid = true; } #if defined(HAVE_LINUX_FIEMAP_H) static int -pkg_sorter_by_listfile_phys_offs(const void *a, const void *b) +pkg_sorter_by_files_list_phys_offs(const void *a, const void *b) { const struct pkginfo *pa = *(const struct pkginfo **)a; const struct pkginfo *pb = *(const struct pkginfo **)b; /* We can't simply subtract, because the difference may be greater than * INT_MAX. */ - if (pa->clientdata->listfile_phys_offs < pb->clientdata->listfile_phys_offs) + if (pa->files_list_phys_offs < pb->files_list_phys_offs) return -1; - else if (pa->clientdata->listfile_phys_offs > pb->clientdata->listfile_phys_offs) + else if (pa->files_list_phys_offs > pb->files_list_phys_offs) return 1; else return 0; @@ -300,13 +289,11 @@ pkg_files_optimize_load(struct pkg_array *array) const char *listfile; int fd; - ensure_package_clientdata(pkg); - if (pkg->status == PKG_STAT_NOTINSTALLED || - pkg->clientdata->listfile_phys_offs != 0) + pkg->files_list_phys_offs != 0) continue; - pkg->clientdata->listfile_phys_offs = -1; + pkg->files_list_phys_offs = -1; listfile = pkg_infodb_get_file(pkg, &pkg->installed, LISTFILE); @@ -321,12 +308,12 @@ pkg_files_optimize_load(struct pkg_array *array) fm.fiemap.fm_extent_count = 1; if (ioctl(fd, FS_IOC_FIEMAP, (unsigned long)&fm) == 0) - pkg->clientdata->listfile_phys_offs = fm.fiemap.fm_extents[0].fe_physical; + pkg->files_list_phys_offs = fm.fiemap.fm_extents[0].fe_physical; close(fd); } - pkg_array_sort(array, pkg_sorter_by_listfile_phys_offs); + pkg_array_sort(array, pkg_sorter_by_files_list_phys_offs); } #elif defined(HAVE_POSIX_FADVISE) static void diff --git a/src/main.h b/src/main.h index 1600abc25..f5695aeea 100644 --- a/src/main.h +++ b/src/main.h @@ -56,22 +56,9 @@ struct perpackagestate { bool enqueued; - /** - * filelistvalid files Meaning - * ------------- ----- ------- - * false NULL Not read yet, must do so if want them. - * false !NULL Read, but rewritten and now out of date. If want - * info must throw away old and reread file. - * true !NULL Read, all is OK. - * true NULL Read OK, but, there were no files. - */ - bool fileslistvalid; - struct fileinlist *files; int replacingfilesandsaid; int cmdline_seen; - off_t listfile_phys_offs; - /** Non-NULL iff in trigproc.c:deferred. */ struct pkg_list *trigprocdeferred; }; diff --git a/src/querycmd.c b/src/querycmd.c index 0c637bed7..555bccd3e 100644 --- a/src/querycmd.c +++ b/src/querycmd.c @@ -490,7 +490,7 @@ enqperpackage(const char *const *argv) default: ensure_packagefiles_available(pkg); ensure_diversions(); - file= pkg->clientdata->files; + file = pkg->files; if (!file) { printf(_("Package '%s' does not contain any files (!)\n"), pkg_name(pkg, pnaw_nonambig)); diff --git a/src/remove.c b/src/remove.c index 6eb2e5d90..735c9e0f3 100644 --- a/src/remove.c +++ b/src/remove.c @@ -266,7 +266,7 @@ removal_bulk_remove_files(struct pkginfo *pkg) modstatdb_note(pkg); push_checkpoint(~ehflag_bombout, ehflag_normaltidy); - reversefilelist_init(&rev_iter, pkg->clientdata->files); + reversefilelist_init(&rev_iter, pkg->files); leftover = NULL; while ((namenode = reversefilelist_next(&rev_iter))) { struct filenamenode *usenode; @@ -389,7 +389,7 @@ static void removal_bulk_remove_leftover_dirs(struct pkginfo *pkg) { modstatdb_note(pkg); push_checkpoint(~ehflag_bombout, ehflag_normaltidy); - reversefilelist_init(&rev_iter, pkg->clientdata->files); + reversefilelist_init(&rev_iter, pkg->files); leftover = NULL; while ((namenode = reversefilelist_next(&rev_iter))) { struct filenamenode *usenode; @@ -498,7 +498,7 @@ static void removal_bulk_remove_configfiles(struct pkginfo *pkg) { * are involved in diversions, except if we are the package doing the * diverting. */ for (lconffp = &pkg->installed.conffiles; (conff = *lconffp) != NULL; ) { - for (searchfile= pkg->clientdata->files; + for (searchfile = pkg->files; searchfile && strcmp(searchfile->namenode->name,conff->name); searchfile= searchfile->next); if (!searchfile) { @@ -605,7 +605,7 @@ static void removal_bulk_remove_configfiles(struct pkginfo *pkg) { } /* Remove the conffiles from the file list file. */ - write_filelist_except(pkg, &pkg->installed, pkg->clientdata->files, + write_filelist_except(pkg, &pkg->installed, pkg->files, fnnf_old_conff); pkg->installed.conffiles = NULL; diff --git a/src/unpack.c b/src/unpack.c index 970871a3a..2fb138691 100644 --- a/src/unpack.c +++ b/src/unpack.c @@ -563,7 +563,7 @@ pkg_remove_old_files(struct pkginfo *pkg, struct filenamenode *namenode; struct stat stab, oldfs; - reversefilelist_init(&rev_iter, pkg->clientdata->files); + reversefilelist_init(&rev_iter, pkg->files); while ((namenode = reversefilelist_next(&rev_iter))) { struct filenamenode *usenode; @@ -824,7 +824,7 @@ pkg_disappear(struct pkginfo *pkg, struct pkginfo *infavour) dpkg_version_blank(&pkg->configversion); pkgbin_blank(&pkg->installed); - pkg->clientdata->fileslistvalid = false; + pkg->files_list_valid = false; modstatdb_note(pkg); } @@ -847,7 +847,7 @@ pkg_disappear_others(struct pkginfo *pkg) otherpkg->status == PKG_STAT_NOTINSTALLED || otherpkg->status == PKG_STAT_CONFIGFILES || otherpkg->clientdata->istobe == PKG_ISTOBE_REMOVE || - !otherpkg->clientdata->files) + !otherpkg->files) continue; /* Do not try to disappear other packages from the same set @@ -866,14 +866,14 @@ pkg_disappear_others(struct pkginfo *pkg) "is to be %d", pkg_name(otherpkg, pnaw_always), otherpkg->clientdata->istobe); - for (cfile = otherpkg->clientdata->files; + for (cfile = otherpkg->files; cfile && strcmp(cfile->namenode->name, "/.") == 0; cfile = cfile->next); if (!cfile) { debug(dbg_stupidlyverbose, "process_archive no non-root, no disappear"); continue; } - for (cfile = otherpkg->clientdata->files; + for (cfile = otherpkg->files; cfile && !filesavespackage(cfile, otherpkg, pkg); cfile = cfile->next); if (cfile) @@ -1012,18 +1012,17 @@ pkg_remove_files_from_others(struct pkginfo *pkg, struct fileinlist *newfileslis if (cfile->namenode->flags & fnnf_new_conff) conffile_mark_obsolete(otherpkg, cfile->namenode); - /* If !fileslistvalid then it's one of the disappeared packages above + /* If !files_list_valid then it's one of the disappeared packages above * or we have already updated the files list file, and we don't bother * with it here, clearly. */ - if (!otherpkg->clientdata->fileslistvalid) + if (!otherpkg->files_list_valid) continue; /* Found one. We delete the list entry for this file, * (and any others in the same package) and then mark the package * as requiring a reread. */ write_filelist_except(otherpkg, &otherpkg->installed, - otherpkg->clientdata->files, fnnf_elide_other_lists); - ensure_package_clientdata(otherpkg); + otherpkg->files, fnnf_elide_other_lists); debug(dbg_veryverbose, "process_archive overwrote from %s", pkg_name(otherpkg, pnaw_always)); } diff --git a/src/verify.c b/src/verify.c index 2698fc216..a4eb86ae7 100644 --- a/src/verify.c +++ b/src/verify.c @@ -102,7 +102,7 @@ verify_package(struct pkginfo *pkg) parse_filehash(pkg, &pkg->installed); pkg_conffiles_mark_old(pkg); - for (file = pkg->clientdata->files; file; file = file->next) { + for (file = pkg->files; file; file = file->next) { struct verify_checks checks; struct filenamenode *fnn; char hash[MD5HASHLEN + 1]; |