This is an automated email from the git hooks/post-receive script.

guillem pushed a commit to branch master
in repository dpkg.

View the commit online:
https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=f7e9dc18083d5677a633db108c209675e7602417

commit f7e9dc18083d5677a633db108c209675e7602417
Author: Guillem Jover <[email protected]>
AuthorDate: Tue Nov 20 04:54:31 2018 +0100

    libdpkg: Cleanup fsys module symbol names
---
 debian/changelog            |   1 +
 lib/dpkg/db-fsys-digest.c   |  10 +--
 lib/dpkg/db-fsys-divert.c   |   8 +--
 lib/dpkg/db-fsys-files.c    |  12 ++--
 lib/dpkg/db-fsys-override.c |  12 ++--
 lib/dpkg/db-fsys.h          |  12 ++--
 lib/dpkg/dpkg-db.h          |   2 +-
 lib/dpkg/fsys-hash.c        |  36 +++++-----
 lib/dpkg/fsys-iter.c        |  36 +++++-----
 lib/dpkg/fsys.h             | 165 ++++++++++++++++++++++----------------------
 lib/dpkg/libdpkg.map        |  24 +++----
 lib/dpkg/pkg-files.c        |  10 +--
 lib/dpkg/pkg-files.h        |   6 +-
 lib/dpkg/t/t-fsys-hash.c    |  38 +++++-----
 lib/dpkg/t/t-pkg-hash.c     |   4 +-
 lib/dpkg/triglib.c          |  10 +--
 lib/dpkg/triglib.h          |  20 +++---
 src/archives.c              | 128 +++++++++++++++++-----------------
 src/archives.h              |  18 ++---
 src/cleanup.c               |   8 +--
 src/configure.c             |   4 +-
 src/divertcmd.c             |  84 +++++++++++-----------
 src/help.c                  |  34 ++++-----
 src/main.c                  |   6 +-
 src/main.h                  |  23 +++---
 src/querycmd.c              |  30 ++++----
 src/remove.c                |  57 +++++++--------
 src/statcmd.c               |  32 ++++-----
 src/trigcmd.c               |   2 +-
 src/unpack.c                |  94 ++++++++++++-------------
 src/verify.c                |  10 +--
 31 files changed, 476 insertions(+), 460 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 3decd20dd..af1ba3c9c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -113,6 +113,7 @@ dpkg (1.19.3) UNRELEASED; urgency=medium
     - dselect: Rename variable r to pkgbin.
     - libdpkg, dpkg: Rename r variables to fnn.
     - libdpkg: Rename ret variable to next.
+    - libdpkg: Cleanup fsys module symbol names.
   * Build system:
     - get-version: Use a format string with printf.
     - run-script: Use $() instead of deprecated ``.
diff --git a/lib/dpkg/db-fsys-digest.c b/lib/dpkg/db-fsys-digest.c
index d5f11ffea..5b32d9179 100644
--- a/lib/dpkg/db-fsys-digest.c
+++ b/lib/dpkg/db-fsys-digest.c
@@ -39,12 +39,12 @@
 #include <dpkg/db-fsys.h>
 
 /*
- * If mask is nonzero, will not write any file whose filenamenode
+ * If mask is nonzero, will not write any file whose fsys_namenode
  * has any flag bits set in mask.
  */
 void
 write_filehash_except(struct pkginfo *pkg, struct pkgbin *pkgbin,
-                      struct fileinlist *list, enum filenamenode_flags mask)
+                      struct fsys_namenode_list *list, enum 
fsys_namenode_flags mask)
 {
        struct atomic_file *file;
        const char *hashfile;
@@ -60,7 +60,7 @@ write_filehash_except(struct pkginfo *pkg, struct pkgbin 
*pkgbin,
        atomic_file_open(file);
 
        for (; list; list = list->next) {
-                struct filenamenode *namenode = list->namenode;
+                struct fsys_namenode *namenode = list->namenode;
 
                if (mask && (namenode->flags & mask))
                        continue;
@@ -88,7 +88,7 @@ parse_filehash_buffer(struct varbuf *buf,
        const char *buf_end = buf->buf + buf->used;
 
        for (thisline = buf->buf; thisline < buf_end; thisline = nextline) {
-               struct filenamenode *namenode;
+               struct fsys_namenode *namenode;
                char *endline, *hash_end, *filename;
 
                endline = memchr(thisline, '\n', buf_end - thisline);
@@ -125,7 +125,7 @@ parse_filehash_buffer(struct varbuf *buf,
                      thisline, filename);
 
                /* Add the file to the list. */
-               namenode = findnamenode(filename, 0);
+               namenode = fsys_hash_find_node(filename, 0);
                namenode->newhash = nfstrsave(thisline);
        }
 }
diff --git a/lib/dpkg/db-fsys-divert.c b/lib/dpkg/db-fsys-divert.c
index b0edd1805..985ed1bbe 100644
--- a/lib/dpkg/db-fsys-divert.c
+++ b/lib/dpkg/db-fsys-divert.c
@@ -39,7 +39,7 @@
 #include <dpkg/debug.h>
 #include <dpkg/db-fsys.h>
 
-static struct diversion *diversions = NULL;
+static struct fsys_diversion *diversions = NULL;
 static char *diversionsname;
 
 void
@@ -50,7 +50,7 @@ ensure_diversions(void)
        char linebuf[MAXDIVERTFILENAME];
        static FILE *file_prev;
        FILE *file;
-       struct diversion *ov, *oicontest, *oialtname;
+       struct fsys_diversion *ov, *oicontest, *oialtname;
 
        if (diversionsname == NULL)
                diversionsname = dpkg_db_get_path(DIVERSIONSFILE);
@@ -104,11 +104,11 @@ ensure_diversions(void)
                oicontest = nfmalloc(sizeof(*oicontest));
                oialtname = nfmalloc(sizeof(*oialtname));
 
-               oialtname->camefrom = findnamenode(linebuf, 0);
+               oialtname->camefrom = fsys_hash_find_node(linebuf, 0);
                oialtname->useinstead = NULL;
 
                fgets_must(linebuf, sizeof(linebuf), file, diversionsname);
-               oicontest->useinstead = findnamenode(linebuf, 0);
+               oicontest->useinstead = fsys_hash_find_node(linebuf, 0);
                oicontest->camefrom = NULL;
 
                fgets_must(linebuf, sizeof(linebuf), file, diversionsname);
diff --git a/lib/dpkg/db-fsys-files.c b/lib/dpkg/db-fsys-files.c
index 534109329..c944d5339 100644
--- a/lib/dpkg/db-fsys-files.c
+++ b/lib/dpkg/db-fsys-files.c
@@ -78,7 +78,7 @@ void
 ensure_packagefiles_available(struct pkginfo *pkg)
 {
   const char *filelistfile;
-  struct fileinlist **lendp;
+  struct fsys_namenode_list **lendp;
   char *loaded_list_end, *thisline, *nextline, *ptr;
   struct varbuf buf = VARBUF_INIT;
   struct dpkg_error err = DPKG_ERROR_INIT;
@@ -122,7 +122,7 @@ ensure_packagefiles_available(struct pkginfo *pkg)
     lendp = &pkg->files;
     thisline = buf.buf;
     while (thisline < loaded_list_end) {
-      struct filenamenode *namenode;
+      struct fsys_namenode *namenode;
 
       ptr = memchr(thisline, '\n', loaded_list_end - thisline);
       if (ptr == NULL)
@@ -138,7 +138,7 @@ ensure_packagefiles_available(struct pkginfo *pkg)
                pkg_name(pkg, pnaw_nonambig));
       *ptr = '\0';
 
-      namenode = findnamenode(thisline, 0);
+      namenode = fsys_hash_find_node(thisline, 0);
       lendp = pkg_files_add_file(pkg, namenode, lendp);
       thisline = nextline;
     }
@@ -290,15 +290,15 @@ void ensure_allinstfiles_available_quiet(void) {
 }
 
 /*
- * If mask is nonzero, will not write any file whose filenamenode
+ * If mask is nonzero, will not write any file whose fsys_namenode
  * has any flag bits set in mask.
  */
 void
 write_filelist_except(struct pkginfo *pkg, struct pkgbin *pkgbin,
-                      struct fileinlist *list, enum filenamenode_flags mask)
+                      struct fsys_namenode_list *list, enum 
fsys_namenode_flags mask)
 {
   struct atomic_file *file;
-  struct fileinlist *node;
+  struct fsys_namenode_list *node;
   const char *listfile;
 
   listfile = pkg_infodb_get_file(pkg, pkgbin, LISTFILE);
diff --git a/lib/dpkg/db-fsys-override.c b/lib/dpkg/db-fsys-override.c
index 8da3afc29..981bd1891 100644
--- a/lib/dpkg/db-fsys-override.c
+++ b/lib/dpkg/db-fsys-override.c
@@ -117,8 +117,8 @@ ensure_statoverrides(enum statdb_parse_flags flags)
        FILE *file;
        char *loaded_list, *loaded_list_end, *thisline, *nextline, *ptr;
        struct file_stat *fso;
-       struct filenamenode *fnn;
-       struct fileiterator *iter;
+       struct fsys_namenode *fnn;
+       struct fsys_hash_iter *iter;
 
        if (statoverridename == NULL)
                statoverridename = dpkg_db_get_path(STATOVERRIDEFILE);
@@ -157,10 +157,10 @@ ensure_statoverrides(enum statdb_parse_flags flags)
        file_prev = file;
 
        /* Reset statoverride information. */
-       iter = files_db_iter_new();
-       while ((fnn = files_db_iter_next(iter)))
+       iter = fsys_hash_iter_new();
+       while ((fnn = fsys_hash_iter_next(iter)))
                fnn->statoverride = NULL;
-       files_db_iter_free(iter);
+       fsys_hash_iter_free(iter);
 
        if (!file) {
                onerr_abort--;
@@ -250,7 +250,7 @@ ensure_statoverrides(enum statdb_parse_flags flags)
                if (thisline >= loaded_list_end)
                        ohshit(_("unexpected end of line in statoverride 
file"));
 
-               fnn = findnamenode(thisline, 0);
+               fnn = fsys_hash_find_node(thisline, 0);
                if (fnn->statoverride)
                        ohshit(_("multiple statoverrides present for file 
'%.250s'"),
                               thisline);
diff --git a/lib/dpkg/db-fsys.h b/lib/dpkg/db-fsys.h
index 35c971552..339a0fb45 100644
--- a/lib/dpkg/db-fsys.h
+++ b/lib/dpkg/db-fsys.h
@@ -28,14 +28,14 @@
 /*
  * Data structure here is as follows:
  *
- * For each package we have a ‘struct fileinlist *’, the head of a list of
+ * For each package we have a ‘struct fsys_namenode_list *’, the head of a 
list of
  * files in that package. They are in ‘forwards’ order. Each entry has a
- * pointer to the ‘struct filenamenode’.
+ * pointer to the ‘struct fsys_namenode’.
  *
- * The struct filenamenodes are in a hash table, indexed by name.
+ * The struct fsys_namenodes are in a hash table, indexed by name.
  * (This hash table is not visible to callers.)
  *
- * Each filenamenode has a (possibly empty) list of ‘struct filepackage’,
+ * Each fsys_namenode has a (possibly empty) list of ‘struct filepackage’,
  * giving a list of the packages listing that filename.
  *
  * When we read files contained info about a particular package we set the
@@ -68,8 +68,8 @@ void ensure_allinstfiles_available_quiet(void);
 void note_must_reread_files_inpackage(struct pkginfo *pkg);
 void parse_filehash(struct pkginfo *pkg, struct pkgbin *pkgbin);
 void write_filelist_except(struct pkginfo *pkg, struct pkgbin *pkgbin,
-                           struct fileinlist *list, enum filenamenode_flags 
mask);
+                           struct fsys_namenode_list *list, enum 
fsys_namenode_flags mask);
 void write_filehash_except(struct pkginfo *pkg, struct pkgbin *pkgbin,
-                           struct fileinlist *list, enum filenamenode_flags 
mask);
+                           struct fsys_namenode_list *list, enum 
fsys_namenode_flags mask);
 
 #endif /* LIBDPKG_DB_FSYS_H */
diff --git a/lib/dpkg/dpkg-db.h b/lib/dpkg/dpkg-db.h
index 8f34d6682..6ea525657 100644
--- a/lib/dpkg/dpkg-db.h
+++ b/lib/dpkg/dpkg-db.h
@@ -228,7 +228,7 @@ struct pkginfo {
    * true              !NULL  Read, all is OK.
    * true              NULL   Read OK, but, there were no files.
    */
-  struct fileinlist *files;
+  struct fsys_namenode_list *files;
   off_t files_list_phys_offs;
   bool files_list_valid;
 
diff --git a/lib/dpkg/fsys-hash.c b/lib/dpkg/fsys-hash.c
index 9648d5bb1..cb173bb9a 100644
--- a/lib/dpkg/fsys-hash.c
+++ b/lib/dpkg/fsys-hash.c
@@ -37,13 +37,13 @@
  * This is the closest one to 2^18 (262144). */
 #define BINS 262139
 
-static struct filenamenode *bins[BINS];
+static struct fsys_namenode *bins[BINS];
 static int nfiles = 0;
 
 void
-filesdbinit(void)
+fsys_hash_init(void)
 {
-       struct filenamenode *fnn;
+       struct fsys_namenode *fnn;
        int i;
 
        for (i = 0; i < BINS; i++) {
@@ -57,7 +57,7 @@ filesdbinit(void)
 }
 
 void
-files_db_reset(void)
+fsys_hash_reset(void)
 {
        int i;
 
@@ -73,10 +73,10 @@ fsys_hash_entries(void)
        return nfiles;
 }
 
-struct filenamenode *
-findnamenode(const char *name, enum fnnflags flags)
+struct fsys_namenode *
+fsys_hash_find_node(const char *name, enum fsys_hash_find_flags flags)
 {
-       struct filenamenode **pointerp, *newnode;
+       struct fsys_namenode **pointerp, *newnode;
        const char *orig_name = name;
 
        /* We skip initial slashes and ‘./’ pairs, and add our own single
@@ -99,12 +99,12 @@ findnamenode(const char *name, enum fnnflags flags)
        if (*pointerp)
                return *pointerp;
 
-       if (flags & fnn_nonew)
+       if (flags & FHFF_NONE)
                return NULL;
 
        newnode = nfmalloc(sizeof(*newnode));
        newnode->packages = NULL;
-       if ((flags & fnn_nocopy) && name > orig_name && name[-1] == '/') {
+       if ((flags & FHFF_NOCOPY) && name > orig_name && name[-1] == '/') {
                newnode->name = name - 1;
        } else {
                char *newname = nfmalloc(strlen(name) + 2);
@@ -131,15 +131,15 @@ findnamenode(const char *name, enum fnnflags flags)
  * Forward iterator.
  */
 
-struct fileiterator {
-       struct filenamenode *namenode;
+struct fsys_hash_iter {
+       struct fsys_namenode *namenode;
        int nbinn;
 };
 
-struct fileiterator *
-files_db_iter_new(void)
+struct fsys_hash_iter *
+fsys_hash_iter_new(void)
 {
-       struct fileiterator *iter;
+       struct fsys_hash_iter *iter;
 
        iter = m_malloc(sizeof(*iter));
        iter->namenode = NULL;
@@ -148,10 +148,10 @@ files_db_iter_new(void)
        return iter;
 }
 
-struct filenamenode *
-files_db_iter_next(struct fileiterator *iter)
+struct fsys_namenode *
+fsys_hash_iter_next(struct fsys_hash_iter *iter)
 {
-       struct filenamenode *fnn = NULL;
+       struct fsys_namenode *fnn = NULL;
 
        while (!iter->namenode) {
                if (iter->nbinn >= BINS)
@@ -165,7 +165,7 @@ files_db_iter_next(struct fileiterator *iter)
 }
 
 void
-files_db_iter_free(struct fileiterator *iter)
+fsys_hash_iter_free(struct fsys_hash_iter *iter)
 {
        free(iter);
 }
diff --git a/lib/dpkg/fsys-iter.c b/lib/dpkg/fsys-iter.c
index a5aa48be5..807aabbb0 100644
--- a/lib/dpkg/fsys-iter.c
+++ b/lib/dpkg/fsys-iter.c
@@ -32,7 +32,7 @@
 #include "fsys.h"
 
 /*
- * Reverse fileinlist iterator.
+ * Reverse iterator.
  */
 
 /*
@@ -42,10 +42,10 @@
  * it apart one entry at a time.
  */
 void
-reversefilelist_init(struct reversefilelistiter *iter,
-                     struct fileinlist *files)
+fsys_hash_rev_iter_init(struct fsys_hash_rev_iter *iter,
+                        struct fsys_namenode_list *files)
 {
-       struct fileinlist *newent;
+       struct fsys_namenode_list *newent;
 
        iter->todo = NULL;
        while (files) {
@@ -57,11 +57,11 @@ reversefilelist_init(struct reversefilelistiter *iter,
        }
 }
 
-struct filenamenode *
-reversefilelist_next(struct reversefilelistiter *iter)
+struct fsys_namenode *
+fsys_hash_rev_iter_next(struct fsys_hash_rev_iter *iter)
 {
-       struct filenamenode *next;
-       struct fileinlist *todo;
+       struct fsys_namenode *next;
+       struct fsys_namenode_list *todo;
 
        todo = iter->todo;
        if (!todo)
@@ -74,15 +74,15 @@ reversefilelist_next(struct reversefilelistiter *iter)
 }
 
 /*
- * Clients must call this function to clean up the reversefilelistiter
+ * Clients must call this function to clean up the fsys_hash_rev_iter
  * if they wish to break out of the iteration before it is all done.
- * Calling this function is not necessary if reversefilelist_next() has
+ * Calling this function is not necessary if fsys_hash_rev_iter_next() has
  * been called until it returned 0.
  */
 void
-reversefilelist_abort(struct reversefilelistiter *iter)
+fsys_hash_rev_iter_abort(struct fsys_hash_rev_iter *iter)
 {
-       while (reversefilelist_next(iter))
+       while (fsys_hash_rev_iter_next(iter))
                ;
 }
 
@@ -90,14 +90,14 @@ reversefilelist_abort(struct reversefilelistiter *iter)
  * Iterator for packages owning a file.
  */
 
-struct filepackages_iterator {
+struct fsys_node_pkgs_iter {
        struct pkg_list *pkg_node;
 };
 
-struct filepackages_iterator *
-filepackages_iter_new(struct filenamenode *fnn)
+struct fsys_node_pkgs_iter *
+fsys_node_pkgs_iter_new(struct fsys_namenode *fnn)
 {
-       struct filepackages_iterator *iter;
+       struct fsys_node_pkgs_iter *iter;
 
        iter = m_malloc(sizeof(*iter));
        iter->pkg_node = fnn->packages;
@@ -106,7 +106,7 @@ filepackages_iter_new(struct filenamenode *fnn)
 }
 
 struct pkginfo *
-filepackages_iter_next(struct filepackages_iterator *iter)
+fsys_node_pkgs_iter_next(struct fsys_node_pkgs_iter *iter)
 {
        struct pkg_list *pkg_node;
 
@@ -120,7 +120,7 @@ filepackages_iter_next(struct filepackages_iterator *iter)
 }
 
 void
-filepackages_iter_free(struct filepackages_iterator *iter)
+fsys_node_pkgs_iter_free(struct fsys_node_pkgs_iter *iter)
 {
        free(iter);
 }
diff --git a/lib/dpkg/fsys.h b/lib/dpkg/fsys.h
index 72d76f715..67fce2ad2 100644
--- a/lib/dpkg/fsys.h
+++ b/lib/dpkg/fsys.h
@@ -27,14 +27,14 @@
 /*
  * Data structure here is as follows:
  *
- * For each package we have a ‘struct fileinlist *’, the head of a list
- * of files in that package. They are in ‘forwards’ order. Each entry has
- * a pointer to the ‘struct filenamenode’.
+ * For each package we have a ‘struct fsys_namenode_list *’, the head of a 
list of
+ * files in that package. They are in ‘forwards’ order. Each entry has a
+ * pointer to the ‘struct fsys_namenode’.
  *
- * The struct filenamenodes are in a hash table, indexed by name.
+ * The struct fsys_namenodes are in a hash table, indexed by name.
  * (This hash table is not visible to callers.)
  *
- * Each filenamenode has a (possibly empty) list of ‘struct filepackage’,
+ * Each fsys_namenode has a (possibly empty) list of ‘struct filepackage’,
  * giving a list of the packages listing that filename.
  *
  * When we read files contained info about a particular package we set the
@@ -47,34 +47,34 @@
 struct pkginfo;
 
 /**
- * Flags to findnamenode().
+ * Flags to fsys_hash_find_node().
  */
-enum fnnflags {
+enum fsys_hash_find_flags {
        /** Do not need to copy filename. */
-       fnn_nocopy                      = DPKG_BIT(0),
-       /** findnamenode may return NULL. */
-       fnn_nonew                       = DPKG_BIT(1),
+       FHFF_NOCOPY                     = DPKG_BIT(0),
+       /** The find function might return NULL. */
+       FHFF_NONE                       = DPKG_BIT(1),
 };
 
-enum filenamenode_flags {
+enum fsys_namenode_flags {
        /** In the newconffiles list. */
-       fnnf_new_conff                  = DPKG_BIT(0),
+       FNNF_NEW_CONFF                  = DPKG_BIT(0),
        /** In the new filesystem archive. */
-       fnnf_new_inarchive              = DPKG_BIT(1),
+       FNNF_NEW_INARCHIVE              = DPKG_BIT(1),
        /** In the old package's conffiles list. */
-       fnnf_old_conff                  = DPKG_BIT(2),
+       FNNF_OLD_CONFF                  = DPKG_BIT(2),
        /** Obsolete conffile. */
-       fnnf_obs_conff                  = DPKG_BIT(3),
+       FNNF_OBS_CONFF                  = DPKG_BIT(3),
        /** Must remove from other packages' lists. */
-       fnnf_elide_other_lists          = DPKG_BIT(4),
+       FNNF_ELIDE_OTHER_LISTS          = DPKG_BIT(4),
        /** >= 1 instance is a dir, cannot rename over. */
-       fnnf_no_atomic_overwrite        = DPKG_BIT(5),
+       FNNF_NO_ATOMIC_OVERWRITE        = DPKG_BIT(5),
        /** New file has been placed on the disk. */
-       fnnf_placed_on_disk             = DPKG_BIT(6),
-       fnnf_deferred_fsync             = DPKG_BIT(7),
-       fnnf_deferred_rename            = DPKG_BIT(8),
+       FNNF_PLACED_ON_DISK             = DPKG_BIT(6),
+       FNNF_DEFERRED_FSYNC             = DPKG_BIT(7),
+       FNNF_DEFERRED_RENAME            = DPKG_BIT(8),
        /** Path being filtered. */
-       fnnf_filtered                   = DPKG_BIT(9),
+       FNNF_FILTERED                   = DPKG_BIT(9),
 };
 
 /**
@@ -85,12 +85,11 @@ struct file_ondisk_id {
        ino_t id_ino;
 };
 
-struct filenamenode {
-       struct filenamenode *next;
+struct fsys_namenode {
+       struct fsys_namenode *next;
        const char *name;
-
        struct pkg_list *packages;
-       struct diversion *divert;
+       struct fsys_diversion *divert;
 
        /** We allow the administrator to override the owner, group and mode
         * of a file. If such an override is present we use that instead of
@@ -102,93 +101,97 @@ struct filenamenode {
        struct trigfileint *trig_interested;
 
        /*
-        * Fields from here on are cleared by filesdbinit().
+        * Fields from here on are used by archives.c &c, and cleared by
+        * fsys_hash_init().
         */
 
        /** Set to zero when a new node is created. */
-       enum filenamenode_flags flags;
+       enum fsys_namenode_flags flags;
 
        /** Valid iff this namenode is in the newconffiles list. */
        const char *oldhash;
+
        /** Valid iff the file was unpacked and hashed on this run. */
        const char *newhash;
 
        struct file_ondisk_id *file_ondisk_id;
 };
 
+struct fsys_namenode_list {
+       struct fsys_namenode_list *next;
+       struct fsys_namenode *namenode;
+};
+
+/**
+ * Queue of fsys_namenode entries.
+ */
+struct fsys_namenode_queue {
+       struct fsys_namenode_list *head, **tail;
+};
+
 /**
  * When we deal with an ‘overridden’ file, every package except the
  * overriding one is considered to contain the other file instead. Both
  * files have entries in the filesdb database, and they refer to each other
  * via these diversion structures.
  *
- * The contested filename's filenamenode has an diversion entry with
- * useinstead set to point to the redirected filename's filenamenode; the
- * redirected filenamenode has camefrom set to the contested filenamenode.
+ * The contested filename's fsys_namenode has an diversion entry with
+ * useinstead set to point to the redirected filename's fsys_namenode; the
+ * redirected fsys_namenode has camefrom set to the contested fsys_namenode.
  * Both sides' diversion entries will have pkg set to the package (if any)
  * which is allowed to use the contended filename.
  *
  * Packages that contain either version of the file will all refer to the
- * contested filenamenode in their per-file package lists (both in core and
- * on disk). References are redirected to the other filenamenode's filename
+ * contested fsys_namenode in their per-file package lists (both in core and
+ * on disk). References are redirected to the other fsys_namenode's filename
  * where appropriate.
  */
-struct diversion {
-       struct filenamenode *useinstead;
-       struct filenamenode *camefrom;
+struct fsys_diversion {
+       struct fsys_namenode *useinstead;
+       struct fsys_namenode *camefrom;
        struct pkgset *pkgset;
 
        /** The ‘contested’ halves are in this list for easy cleanup. */
-       struct diversion *next;
+       struct fsys_diversion *next;
 };
 
-struct fileinlist {
-       struct fileinlist *next;
-       struct filenamenode *namenode;
+struct fsys_node_pkgs_iter;
+struct fsys_node_pkgs_iter *
+fsys_node_pkgs_iter_new(struct fsys_namenode *fnn);
+struct pkginfo *
+fsys_node_pkgs_iter_next(struct fsys_node_pkgs_iter *iter);
+void
+fsys_node_pkgs_iter_free(struct fsys_node_pkgs_iter *iter);
+
+void
+fsys_hash_init(void);
+void
+fsys_hash_reset(void);
+int
+fsys_hash_entries(void);
+
+struct fsys_hash_iter;
+struct fsys_hash_iter *
+fsys_hash_iter_new(void);
+struct fsys_namenode *
+fsys_hash_iter_next(struct fsys_hash_iter *iter);
+void
+fsys_hash_iter_free(struct fsys_hash_iter *iter);
+
+struct fsys_namenode *
+fsys_hash_find_node(const char *filename, enum fsys_hash_find_flags flags);
+
+struct fsys_hash_rev_iter {
+       struct fsys_namenode_list *todo;
 };
 
-/**
- * Queue of filenamenode entries.
- */
-struct filenamenode_queue {
-       struct fileinlist *head, **tail;
-};
-
-/**
- * Forward filesystem node iterator.
- */
-struct fileiterator;
-
-/**
- * Reverse filesystem node iterator.
- */
-struct reversefilelistiter {
-       struct fileinlist *todo;
-};
-
-/**
- * Forward filesystem node package owners iterator.
- */
-struct filepackages_iterator;
-
-
-void filesdbinit(void);
-void files_db_reset(void);
-int fsys_hash_entries(void);
-
-struct filenamenode *findnamenode(const char *filename, enum fnnflags flags);
-
-struct fileiterator *files_db_iter_new(void);
-struct filenamenode *files_db_iter_next(struct fileiterator *iter);
-void files_db_iter_free(struct fileiterator *iter);
-
-void reversefilelist_init(struct reversefilelistiter *iterptr, struct 
fileinlist *files);
-struct filenamenode *reversefilelist_next(struct reversefilelistiter *iterptr);
-void reversefilelist_abort(struct reversefilelistiter *iterptr);
-
-struct filepackages_iterator *filepackages_iter_new(struct filenamenode *fnn);
-struct pkginfo *filepackages_iter_next(struct filepackages_iterator *iter);
-void filepackages_iter_free(struct filepackages_iterator *iter);
+void
+fsys_hash_rev_iter_init(struct fsys_hash_rev_iter *iter,
+                        struct fsys_namenode_list *files);
+struct fsys_namenode *
+fsys_hash_rev_iter_next(struct fsys_hash_rev_iter *iter);
+void
+fsys_hash_rev_iter_abort(struct fsys_hash_rev_iter *iter);
 
 const char *dpkg_fsys_set_dir(const char *dir);
 const char *dpkg_fsys_get_dir(void);
diff --git a/lib/dpkg/libdpkg.map b/lib/dpkg/libdpkg.map
index 082732405..c337ee662 100644
--- a/lib/dpkg/libdpkg.map
+++ b/lib/dpkg/libdpkg.map
@@ -402,22 +402,22 @@ LIBDPKG_PRIVATE {
        ensure_diversions;
 
        # Filesystem node hash support
-       filesdbinit;
-       files_db_reset;
+       fsys_hash_init;
+       fsys_hash_reset;
        fsys_hash_entries;
-       findnamenode;
+       fsys_hash_find_node;
 
-       files_db_iter_new;
-       files_db_iter_next;
-       files_db_iter_free;
+       fsys_hash_iter_new;
+       fsys_hash_iter_next;
+       fsys_hash_iter_free;
 
-       reversefilelist_init;
-       reversefilelist_next;
-       reversefilelist_abort;
+       fsys_hash_rev_iter_init;
+       fsys_hash_rev_iter_next;
+       fsys_hash_rev_iter_abort;
 
-       filepackages_iter_new;
-       filepackages_iter_next;
-       filepackages_iter_free;
+       fsys_node_pkgs_iter_new;
+       fsys_node_pkgs_iter_next;
+       fsys_node_pkgs_iter_free;
 
        dpkg_fsys_set_dir;
        dpkg_fsys_get_dir;
diff --git a/lib/dpkg/pkg-files.c b/lib/dpkg/pkg-files.c
index 349e63d4f..f02213270 100644
--- a/lib/dpkg/pkg-files.c
+++ b/lib/dpkg/pkg-files.c
@@ -35,7 +35,7 @@
 void
 pkg_files_blank(struct pkginfo *pkg)
 {
-       struct fileinlist *current;
+       struct fsys_namenode_list *current;
 
        for (current = pkg->files;
             current;
@@ -63,11 +63,11 @@ pkg_files_blank(struct pkginfo *pkg)
        pkg->files = NULL;
 }
 
-struct fileinlist **
-pkg_files_add_file(struct pkginfo *pkg, struct filenamenode *namenode,
-                   struct fileinlist **file_tail)
+struct fsys_namenode_list **
+pkg_files_add_file(struct pkginfo *pkg, struct fsys_namenode *namenode,
+                   struct fsys_namenode_list **file_tail)
 {
-       struct fileinlist *newent;
+       struct fsys_namenode_list *newent;
        struct pkg_list *pkg_node;
 
        if (file_tail == NULL)
diff --git a/lib/dpkg/pkg-files.h b/lib/dpkg/pkg-files.h
index 73770b7dc..bee137a16 100644
--- a/lib/dpkg/pkg-files.h
+++ b/lib/dpkg/pkg-files.h
@@ -35,9 +35,9 @@ DPKG_BEGIN_DECLS
 void
 pkg_files_blank(struct pkginfo *pkg);
 
-struct fileinlist **
-pkg_files_add_file(struct pkginfo *pkg, struct filenamenode *namenode,
-                   struct fileinlist **file_tail);
+struct fsys_namenode_list **
+pkg_files_add_file(struct pkginfo *pkg, struct fsys_namenode *namenode,
+                   struct fsys_namenode_list **file_tail);
 
 /** @} */
 
diff --git a/lib/dpkg/t/t-fsys-hash.c b/lib/dpkg/t/t-fsys-hash.c
index 8d34d4807..d80dbe899 100644
--- a/lib/dpkg/t/t-fsys-hash.c
+++ b/lib/dpkg/t/t-fsys-hash.c
@@ -28,20 +28,20 @@
 static void
 test_fsys_nodes(void)
 {
-       struct filenamenode *fnn;
-       struct fileiterator *iter;
+       struct fsys_namenode *fnn;
+       struct fsys_hash_iter *iter;
        const char *name;
 
        test_pass(fsys_hash_entries() == 0);
 
-       filesdbinit();
+       fsys_hash_init();
 
-       fnn = findnamenode("/nonexistent", fnn_nonew);
+       fnn = fsys_hash_find_node("/nonexistent", FHFF_NONE);
        test_pass(fnn == NULL);
        test_pass(fsys_hash_entries() == 0);
 
        name = "/test/path/aa";
-       fnn = findnamenode(name, fnn_nocopy);
+       fnn = fsys_hash_find_node(name, FHFF_NOCOPY);
        test_pass(fnn != NULL);
        test_pass(fsys_hash_entries() == 1);
        test_pass(fnn->name == name);
@@ -50,7 +50,7 @@ test_fsys_nodes(void)
        test_pass(fnn->oldhash == NULL);
        test_str(fnn->newhash, ==, EMPTYHASHFLAG);
 
-       fnn = findnamenode("//./test/path/bb", 0);
+       fnn = fsys_hash_find_node("//./test/path/bb", 0);
        test_pass(fnn != NULL);
        test_pass(fsys_hash_entries() == 2);
        test_str(fnn->name, ==, "/test/path/bb");
@@ -58,7 +58,7 @@ test_fsys_nodes(void)
        test_pass(fnn->oldhash == NULL);
        test_str(fnn->newhash, ==, EMPTYHASHFLAG);
 
-       fnn = findnamenode("/test/path/cc", 0);
+       fnn = fsys_hash_find_node("/test/path/cc", 0);
        test_pass(fnn != NULL);
        test_pass(fsys_hash_entries() == 3);
        test_str(fnn->name, ==, "/test/path/cc");
@@ -66,8 +66,8 @@ test_fsys_nodes(void)
        test_pass(fnn->oldhash == NULL);
        test_str(fnn->newhash, ==, EMPTYHASHFLAG);
 
-       iter = files_db_iter_new();
-       while ((fnn = files_db_iter_next(iter))) {
+       iter = fsys_hash_iter_new();
+       while ((fnn = fsys_hash_iter_next(iter))) {
                if (strcmp(fnn->name, "/test/path/aa") == 0)
                        test_str(fnn->name, ==, "/test/path/aa");
                else if (strcmp(fnn->name, "/test/path/bb") == 0)
@@ -75,27 +75,27 @@ test_fsys_nodes(void)
                else if (strcmp(fnn->name, "/test/path/cc") == 0)
                        test_str(fnn->name, ==, "/test/path/cc");
                else
-                       test_fail("unknown filenamenode");
+                       test_fail("unknown fsys_namenode");
        }
-       files_db_iter_free(iter);
+       fsys_hash_iter_free(iter);
 
-       filesdbinit();
+       fsys_hash_init();
        test_pass(fsys_hash_entries() == 3);
-       fnn = findnamenode("/test/path/aa", fnn_nonew);
+       fnn = fsys_hash_find_node("/test/path/aa", FHFF_NONE);
        test_pass(fnn != NULL);
-       fnn = findnamenode("/test/path/bb", fnn_nonew);
+       fnn = fsys_hash_find_node("/test/path/bb", FHFF_NONE);
        test_pass(fnn != NULL);
-       fnn = findnamenode("/test/path/cc", fnn_nonew);
+       fnn = fsys_hash_find_node("/test/path/cc", FHFF_NONE);
        test_pass(fnn != NULL);
        test_pass(fsys_hash_entries() == 3);
 
-       files_db_reset();
+       fsys_hash_reset();
        test_pass(fsys_hash_entries() == 0);
-       fnn = findnamenode("/test/path/aa", fnn_nonew);
+       fnn = fsys_hash_find_node("/test/path/aa", FHFF_NONE);
        test_pass(fnn == NULL);
-       fnn = findnamenode("/test/path/bb", fnn_nonew);
+       fnn = fsys_hash_find_node("/test/path/bb", FHFF_NONE);
        test_pass(fnn == NULL);
-       fnn = findnamenode("/test/path/cc", fnn_nonew);
+       fnn = fsys_hash_find_node("/test/path/cc", FHFF_NONE);
        test_pass(fnn == NULL);
        test_pass(fsys_hash_entries() == 0);
 }
diff --git a/lib/dpkg/t/t-pkg-hash.c b/lib/dpkg/t/t-pkg-hash.c
index f45594f15..c6ab20e28 100644
--- a/lib/dpkg/t/t-pkg-hash.c
+++ b/lib/dpkg/t/t-pkg-hash.c
@@ -135,7 +135,7 @@ test_pkg_hash(void)
                else if (strcmp(set->name, "pkg-cc") == 0)
                        test_str(set->name, ==, "pkg-cc");
                else
-                       test_fail("unknown filenamenode");
+                       test_fail("unknown fsys_namenode");
        }
        pkg_db_iter_free(iter);
 
@@ -160,7 +160,7 @@ test_pkg_hash(void)
                } else if (strcmp(pkg->set->name, "pkg-cc") == 0) {
                        test_str(pkg->set->name, ==, "pkg-cc");
                } else {
-                       test_fail("unknown filenamenode");
+                       test_fail("unknown fsys_namenode");
                }
        }
        pkg_db_iter_free(iter);
diff --git a/lib/dpkg/triglib.c b/lib/dpkg/triglib.c
index f7488ee61..ab9060f66 100644
--- a/lib/dpkg/triglib.c
+++ b/lib/dpkg/triglib.c
@@ -396,7 +396,7 @@ trk_file_interest_change(const char *trig, struct pkginfo 
*pkg,
                          struct pkgbin *pkgbin, int signum,
                          enum trig_options opts)
 {
-       struct filenamenode *fnn;
+       struct fsys_namenode *fnn;
        struct trigfileint **search, *tfi;
 
        fnn = trigh.namenode_find(trig, signum <= 0);
@@ -545,14 +545,14 @@ ok:
 void
 trig_file_activate_byname(const char *trig, struct pkginfo *aw)
 {
-       struct filenamenode *fnn = trigh.namenode_find(trig, 1);
+       struct fsys_namenode *fnn = trigh.namenode_find(trig, 1);
 
        if (fnn)
                trig_file_activate(fnn, aw);
 }
 
 void
-trig_file_activate(struct filenamenode *trig, struct pkginfo *aw)
+trig_file_activate(struct fsys_namenode *trig, struct pkginfo *aw)
 {
        struct trigfileint *tfi;
 
@@ -579,7 +579,7 @@ trig_file_activate_parents(const char *trig, struct pkginfo 
*aw)
 }
 
 void
-trig_path_activate(struct filenamenode *trig, struct pkginfo *aw)
+trig_path_activate(struct fsys_namenode *trig, struct pkginfo *aw)
 {
        trig_file_activate(trig, aw);
        trig_file_activate_parents(trigh.namenode_name(trig), aw);
@@ -588,7 +588,7 @@ trig_path_activate(struct filenamenode *trig, struct 
pkginfo *aw)
 static void
 trig_path_activate_byname(const char *trig, struct pkginfo *aw)
 {
-       struct filenamenode *fnn = trigh.namenode_find(trig, 1);
+       struct fsys_namenode *fnn = trigh.namenode_find(trig, 1);
 
        if (fnn)
                trig_file_activate(fnn, aw);
diff --git a/lib/dpkg/triglib.h b/lib/dpkg/triglib.h
index 74b33ccb2..b4c772516 100644
--- a/lib/dpkg/triglib.h
+++ b/lib/dpkg/triglib.h
@@ -54,7 +54,7 @@ enum trig_options {
 struct trigfileint {
        struct pkginfo *pkg;
        struct pkgbin *pkgbin;
-       struct filenamenode *fnn;
+       struct fsys_namenode *fnn;
        enum trig_options options;
        struct trigfileint *samefile_next;
        struct {
@@ -71,26 +71,26 @@ struct trig_hooks {
        void (*enqueue_deferred)(struct pkginfo *pend);
        void (*transitional_activate)(enum modstatdb_rw cstatus);
 
-       struct filenamenode *(*namenode_find)(const char *filename, bool nonew);
-       struct trigfileint **(*namenode_interested)(struct filenamenode *fnn);
+       struct fsys_namenode *(*namenode_find)(const char *filename, bool 
nonew);
+       struct trigfileint **(*namenode_interested)(struct fsys_namenode *fnn);
 
        /** Returns a pointer from nfmalloc. */
-       const char *(*namenode_name)(struct filenamenode *fnn);
+       const char *(*namenode_name)(struct fsys_namenode *fnn);
 };
 
 #define TRIGHOOKS_DEFINE_NAMENODE_ACCESSORS                             \
-  static struct filenamenode *th_nn_find(const char *name, bool nonew)  \
-    { return findnamenode(name, nonew ? fnn_nonew : 0); }               \
-  static struct trigfileint **th_nn_interested(struct filenamenode *fnn) \
+  static struct fsys_namenode *th_nn_find(const char *name, bool nonew)        
 \
+    { return fsys_hash_find_node(name, nonew ? FHFF_NONE : 0); }               
 \
+  static struct trigfileint **th_nn_interested(struct fsys_namenode *fnn) \
     { return &fnn->trig_interested; }                                   \
-  static const char *th_nn_name(struct filenamenode *fnn)               \
+  static const char *th_nn_name(struct fsys_namenode *fnn)              \
     { return fnn->name; }
 
 void trig_override_hooks(const struct trig_hooks *hooks);
 
 void trig_file_activate_byname(const char *trig, struct pkginfo *aw);
-void trig_file_activate(struct filenamenode *trig, struct pkginfo *aw);
-void trig_path_activate(struct filenamenode *trig, struct pkginfo *aw);
+void trig_file_activate(struct fsys_namenode *trig, struct pkginfo *aw);
+void trig_path_activate(struct fsys_namenode *trig, struct pkginfo *aw);
 
 bool trig_note_pend_core(struct pkginfo *pend, const char *trig /*not 
copied!*/);
 bool trig_note_pend(struct pkginfo *pend, const char *trig /*not copied!*/);
diff --git a/src/archives.c b/src/archives.c
index 3df6424de..5a6fc0838 100644
--- a/src/archives.c
+++ b/src/archives.c
@@ -113,11 +113,11 @@ tar_pool_release(void)
   }
 }
 
-struct fileinlist *
-tar_filenamenode_queue_push(struct filenamenode_queue *queue,
-                            struct filenamenode *namenode)
+struct fsys_namenode_list *
+tar_fsys_namenode_queue_push(struct fsys_namenode_queue *queue,
+                            struct fsys_namenode *namenode)
 {
-  struct fileinlist *node;
+  struct fsys_namenode_list *node;
 
   node = tar_pool_alloc(sizeof(*node));
   node->namenode = namenode;
@@ -130,9 +130,9 @@ tar_filenamenode_queue_push(struct filenamenode_queue 
*queue,
 }
 
 static void
-tar_filenamenode_queue_pop(struct filenamenode_queue *queue,
-                           struct fileinlist **tail_prev,
-                           struct fileinlist *node)
+tar_fsys_namenode_queue_pop(struct fsys_namenode_queue *queue,
+                           struct fsys_namenode_list **tail_prev,
+                           struct fsys_namenode_list *node)
 {
   tar_pool_free(node);
   queue->tail = tail_prev;
@@ -148,11 +148,11 @@ tar_filenamenode_queue_pop(struct filenamenode_queue 
*queue,
  * shared directories don't stop packages from disappearing).
  */
 bool
-filesavespackage(struct fileinlist *file,
+filesavespackage(struct fsys_namenode_list *file,
                  struct pkginfo *pkgtobesaved,
                  struct pkginfo *pkgbeinginstalled)
 {
-  struct filepackages_iterator *iter;
+  struct fsys_node_pkgs_iter *iter;
   struct pkgset *divpkgset;
   struct pkginfo *thirdpkg;
 
@@ -171,14 +171,14 @@ filesavespackage(struct fileinlist *file,
     }
   }
   /* Is the file in the package being installed? If so then it can't save. */
-  if (file->namenode->flags & fnnf_new_inarchive) {
+  if (file->namenode->flags & FNNF_NEW_INARCHIVE) {
     debug(dbg_eachfiledetail,"filesavespackage ... in new archive -- no save");
     return false;
   }
   /* Look for a 3rd package which can take over the file (in case
    * it's a directory which is shared by many packages. */
-  iter = filepackages_iter_new(file->namenode);
-  while ((thirdpkg = filepackages_iter_next(iter))) {
+  iter = fsys_node_pkgs_iter_new(file->namenode);
+  while ((thirdpkg = fsys_node_pkgs_iter_next(iter))) {
     debug(dbg_eachfiledetail, "filesavespackage ... also in %s",
           pkg_name(thirdpkg, pnaw_always));
 
@@ -205,10 +205,10 @@ filesavespackage(struct fileinlist *file,
 
     /* We've found a package that can take this file. */
     debug(dbg_eachfiledetail, "filesavespackage ...  taken -- no save");
-    filepackages_iter_free(iter);
+    fsys_node_pkgs_iter_free(iter);
     return false;
   }
-  filepackages_iter_free(iter);
+  fsys_node_pkgs_iter_free(iter);
 
   debug(dbg_eachfiledetail, "filesavespackage ... not taken -- save !");
   return true;
@@ -216,7 +216,7 @@ filesavespackage(struct fileinlist *file,
 
 static void
 md5hash_prev_conffile(struct pkginfo *pkg, char *oldhash, const char *oldname,
-                      struct filenamenode *namenode)
+                      struct fsys_namenode *namenode)
 {
   struct pkginfo *otherpkg;
   struct conffile *conff;
@@ -343,13 +343,13 @@ does_replace(struct pkginfo *new_pkg, struct pkgbin 
*new_pkgbin,
 static void
 tarobject_extract(struct tarcontext *tc, struct tar_entry *te,
                   const char *path, struct file_stat *st,
-                  struct filenamenode *namenode)
+                  struct fsys_namenode *namenode)
 {
   static struct varbuf hardlinkfn;
   static int fd;
 
   struct dpkg_error err;
-  struct filenamenode *linknode;
+  struct fsys_namenode *linknode;
   char fnamebuf[256];
   char fnamenewbuf[256];
   char *newhash;
@@ -398,7 +398,7 @@ tarobject_extract(struct tarcontext *tc, struct tar_entry 
*te,
 
     /* Postpone the fsync, to try to avoid massive I/O degradation. */
     if (!fc_unsafe_io)
-      namenode->flags |= fnnf_deferred_fsync;
+      namenode->flags |= FNNF_DEFERRED_FSYNC;
 
     pop_cleanup(ehflag_normaltidy); /* fd = open(path) */
     if (close(fd))
@@ -422,10 +422,10 @@ tarobject_extract(struct tarcontext *tc, struct tar_entry 
*te,
   case TAR_FILETYPE_HARDLINK:
     varbuf_reset(&hardlinkfn);
     varbuf_add_str(&hardlinkfn, instdir);
-    linknode = findnamenode(te->linkname, 0);
+    linknode = fsys_hash_find_node(te->linkname, 0);
     varbuf_add_str(&hardlinkfn,
                    namenodetouse(linknode, tc->pkg, 
&tc->pkg->available)->name);
-    if (linknode->flags & (fnnf_deferred_rename | fnnf_new_conff))
+    if (linknode->flags & (FNNF_DEFERRED_RENAME | FNNF_NEW_CONFF))
       varbuf_add_str(&hardlinkfn, DPKGNEWEXT);
     varbuf_end_str(&hardlinkfn);
     if (link(hardlinkfn.buf, path))
@@ -452,7 +452,7 @@ tarobject_extract(struct tarcontext *tc, struct tar_entry 
*te,
 
 static void
 tarobject_hash(struct tarcontext *tc, struct tar_entry *te,
-               struct filenamenode *namenode)
+               struct fsys_namenode *namenode)
 {
   if (te->type == TAR_FILETYPE_FILE) {
     struct dpkg_error err;
@@ -468,9 +468,9 @@ tarobject_hash(struct tarcontext *tc, struct tar_entry *te,
     namenode->newhash = newhash;
     debug(dbg_eachfiledetail, "tarobject file hash=%s", namenode->newhash);
   } else if (te->type == TAR_FILETYPE_HARDLINK) {
-    struct filenamenode *linknode;
+    struct fsys_namenode *linknode;
 
-    linknode = findnamenode(te->linkname, 0);
+    linknode = fsys_hash_find_node(te->linkname, 0);
     namenode->newhash = linknode->newhash;
     debug(dbg_eachfiledetail, "tarobject hardlink hash=%s", namenode->newhash);
   }
@@ -529,7 +529,7 @@ static void
 tarobject_matches(struct tarcontext *tc,
                   const char *fn_old, struct stat *stab, char *oldhash,
                   const char *fn_new, struct tar_entry *te,
-                  struct filenamenode *namenode)
+                  struct fsys_namenode *namenode)
 {
   char *linkname;
   ssize_t linksize;
@@ -579,7 +579,7 @@ tarobject_matches(struct tarcontext *tc,
     /* Fall through. */
   case TAR_FILETYPE_FILE:
     /* Only check metadata for non-conffiles. */
-    if (!(namenode->flags & fnnf_new_conff) &&
+    if (!(namenode->flags & FNNF_NEW_CONFF) &&
         !(S_ISREG(stab->st_mode) && te->size == stab->st_size))
       break;
     if (strcmp(oldhash, namenode->newhash) == 0)
@@ -665,7 +665,7 @@ tarobject(void *ctx, struct tar_entry *ti)
 {
   static struct varbuf conffderefn, symlinkfn;
   const char *usename;
-  struct filenamenode *usenode;
+  struct fsys_namenode *usenode;
 
   struct conffile *conff;
   struct tarcontext *tc = ctx;
@@ -676,7 +676,7 @@ tarobject(void *ctx, struct tar_entry *ti)
   ssize_t r;
   struct stat stab, stabtmp;
   struct file_stat nodestat;
-  struct fileinlist *nifd, **oldnifd;
+  struct fsys_namenode_list *nifd, **oldnifd;
   struct pkgset *divpkgset;
   struct pkginfo *otherpkg;
 
@@ -690,9 +690,9 @@ tarobject(void *ctx, struct tar_entry *ti)
    * The trailing ‘/’ put on the end of names in tarfiles has already
    * been stripped by tar_extractor(). */
   oldnifd = tc->newfiles_queue->tail;
-  nifd = tar_filenamenode_queue_push(tc->newfiles_queue,
-                                     findnamenode(ti->name, 0));
-  nifd->namenode->flags |= fnnf_new_inarchive;
+  nifd = tar_fsys_namenode_queue_push(tc->newfiles_queue,
+                                     fsys_hash_find_node(ti->name, 0));
+  nifd->namenode->flags |= FNNF_NEW_INARCHIVE;
 
   debug(dbg_eachfile,
         "tarobject ti->name='%s' mode=%lo owner=%u:%u type=%d(%c)"
@@ -735,12 +735,12 @@ tarobject(void *ctx, struct tar_entry *ti)
 
   trig_file_activate(usenode, tc->pkg);
 
-  if (nifd->namenode->flags & fnnf_new_conff) {
+  if (nifd->namenode->flags & FNNF_NEW_CONFF) {
     /* If it's a conffile we have to extract it next to the installed
      * version (i.e. we do the usual link-following). */
     if (conffderef(tc->pkg, &conffderefn, usename))
       usename= conffderefn.buf;
-    debug(dbg_conff, "tarobject fnnf_new_conff deref='%s'", usename);
+    debug(dbg_conff, "tarobject FNNF_NEW_CONFF deref='%s'", usename);
   }
 
   setupfnamevbs(usename);
@@ -807,10 +807,10 @@ tarobject(void *ctx, struct tar_entry *ti)
   keepexisting = false;
   refcounting = false;
   if (!existingdir) {
-    struct filepackages_iterator *iter;
+    struct fsys_node_pkgs_iter *iter;
 
-    iter = filepackages_iter_new(nifd->namenode);
-    while ((otherpkg = filepackages_iter_next(iter))) {
+    iter = fsys_node_pkgs_iter_new(nifd->namenode);
+    while ((otherpkg = fsys_node_pkgs_iter_next(iter))) {
       if (otherpkg == tc->pkg)
         continue;
       debug(dbg_eachfile, "tarobject ... found in %s",
@@ -874,7 +874,7 @@ tarobject(void *ctx, struct tar_entry *ti)
 
       /* Is the file an obsolete conffile in the other package
        * and a conffile in the new package? */
-      if ((nifd->namenode->flags & fnnf_new_conff) &&
+      if ((nifd->namenode->flags & FNNF_NEW_CONFF) &&
           !statr && S_ISREG(stab.st_mode)) {
         for (conff = otherpkg->installed.conffiles;
              conff;
@@ -903,7 +903,7 @@ tarobject(void *ctx, struct tar_entry *ti)
                pkg_name(otherpkg, pnaw_nonambig),
                versiondescribe(&otherpkg->installed.version, vdew_nonambig));
         otherpkg->clientdata->replacingfilesandsaid = 2;
-        nifd->namenode->flags &= ~fnnf_new_inarchive;
+        nifd->namenode->flags &= ~FNNF_NEW_INARCHIVE;
         keepexisting = true;
       } else {
         /* At this point we are replacing something without a Replaces. */
@@ -924,20 +924,20 @@ tarobject(void *ctx, struct tar_entry *ti)
         }
       }
     }
-    filepackages_iter_free(iter);
+    fsys_node_pkgs_iter_free(iter);
   }
 
   if (keepexisting) {
-    if (nifd->namenode->flags & fnnf_new_conff)
-      nifd->namenode->flags |= fnnf_obs_conff;
-    tar_filenamenode_queue_pop(tc->newfiles_queue, oldnifd, nifd);
+    if (nifd->namenode->flags & FNNF_NEW_CONFF)
+      nifd->namenode->flags |= FNNF_OBS_CONFF;
+    tar_fsys_namenode_queue_pop(tc->newfiles_queue, oldnifd, nifd);
     tarobject_skip_entry(tc, ti);
     return 0;
   }
 
   if (filter_should_skip(ti)) {
-    nifd->namenode->flags &= ~fnnf_new_inarchive;
-    nifd->namenode->flags |= fnnf_filtered;
+    nifd->namenode->flags &= ~FNNF_NEW_INARCHIVE;
+    nifd->namenode->flags |= FNNF_FILTERED;
     tarobject_skip_entry(tc, ti);
 
     return 0;
@@ -951,7 +951,7 @@ tarobject(void *ctx, struct tar_entry *ti)
   if (refcounting) {
     debug(dbg_eachfiledetail, "tarobject hashing on-disk file '%s', 
refcounting",
           fnamevb.buf);
-    if (nifd->namenode->flags & fnnf_new_conff) {
+    if (nifd->namenode->flags & FNNF_NEW_CONFF) {
       md5hash_prev_conffile(tc->pkg, oldhash, fnamenewvb.buf, nifd->namenode);
     } else if (S_ISREG(stab.st_mode)) {
       md5hash(tc->pkg, oldhash, fnamevb.buf);
@@ -1008,9 +1008,9 @@ tarobject(void *ctx, struct tar_entry *ti)
 
   /* First, check to see if it's a conffile. If so we don't install
    * it now - we leave it in .dpkg-new for --configure to take care of. */
-  if (nifd->namenode->flags & fnnf_new_conff) {
+  if (nifd->namenode->flags & FNNF_NEW_CONFF) {
     debug(dbg_conffdetail,"tarobject conffile extracted");
-    nifd->namenode->flags |= fnnf_elide_other_lists;
+    nifd->namenode->flags |= FNNF_ELIDE_OTHER_LISTS;
     return 0;
   }
 
@@ -1023,7 +1023,7 @@ tarobject(void *ctx, struct tar_entry *ti)
     if (ti->type == TAR_FILETYPE_DIR || S_ISDIR(stab.st_mode)) {
       /* One of the two is a directory - can't do atomic install. */
       debug(dbg_eachfiledetail,"tarobject directory, nonatomic");
-      nifd->namenode->flags |= fnnf_no_atomic_overwrite;
+      nifd->namenode->flags |= FNNF_NO_ATOMIC_OVERWRITE;
       if (rename(fnamevb.buf,fnametmpvb.buf))
         ohshite(_("unable to move aside '%.255s' to install new version"),
                 ti->name);
@@ -1067,7 +1067,7 @@ tarobject(void *ctx, struct tar_entry *ti)
 
   if (ti->type == TAR_FILETYPE_FILE || ti->type == TAR_FILETYPE_HARDLINK ||
       ti->type == TAR_FILETYPE_SYMLINK) {
-    nifd->namenode->flags |= fnnf_deferred_rename;
+    nifd->namenode->flags |= FNNF_DEFERRED_RENAME;
 
     debug(dbg_eachfiledetail, "tarobject done and installation deferred");
   } else {
@@ -1081,8 +1081,8 @@ tarobject(void *ctx, struct tar_entry *ti)
      * remove the new file.
      */
 
-    nifd->namenode->flags |= fnnf_placed_on_disk;
-    nifd->namenode->flags |= fnnf_elide_other_lists;
+    nifd->namenode->flags |= FNNF_PLACED_ON_DISK;
+    nifd->namenode->flags |= FNNF_ELIDE_OTHER_LISTS;
 
     debug(dbg_eachfiledetail, "tarobject done and installed");
   }
@@ -1092,15 +1092,15 @@ tarobject(void *ctx, struct tar_entry *ti)
 
 #if defined(SYNC_FILE_RANGE_WAIT_BEFORE)
 static void
-tar_writeback_barrier(struct fileinlist *files, struct pkginfo *pkg)
+tar_writeback_barrier(struct fsys_namenode_list *files, struct pkginfo *pkg)
 {
-  struct fileinlist *cfile;
+  struct fsys_namenode_list *cfile;
 
   for (cfile = files; cfile; cfile = cfile->next) {
-    struct filenamenode *usenode;
+    struct fsys_namenode *usenode;
     int fd;
 
-    if (!(cfile->namenode->flags & fnnf_deferred_fsync))
+    if (!(cfile->namenode->flags & FNNF_DEFERRED_FSYNC))
       continue;
 
     usenode = namenodetouse(cfile->namenode, pkg, &pkg->available);
@@ -1120,30 +1120,30 @@ tar_writeback_barrier(struct fileinlist *files, struct 
pkginfo *pkg)
 }
 #else
 static void
-tar_writeback_barrier(struct fileinlist *files, struct pkginfo *pkg)
+tar_writeback_barrier(struct fsys_namenode_list *files, struct pkginfo *pkg)
 {
 }
 #endif
 
 void
-tar_deferred_extract(struct fileinlist *files, struct pkginfo *pkg)
+tar_deferred_extract(struct fsys_namenode_list *files, struct pkginfo *pkg)
 {
-  struct fileinlist *cfile;
-  struct filenamenode *usenode;
+  struct fsys_namenode_list *cfile;
+  struct fsys_namenode *usenode;
 
   tar_writeback_barrier(files, pkg);
 
   for (cfile = files; cfile; cfile = cfile->next) {
     debug(dbg_eachfile, "deferred extract of '%.255s'", cfile->namenode->name);
 
-    if (!(cfile->namenode->flags & fnnf_deferred_rename))
+    if (!(cfile->namenode->flags & FNNF_DEFERRED_RENAME))
       continue;
 
     usenode = namenodetouse(cfile->namenode, pkg, &pkg->available);
 
     setupfnamevbs(usenode->name);
 
-    if (cfile->namenode->flags & fnnf_deferred_fsync) {
+    if (cfile->namenode->flags & FNNF_DEFERRED_FSYNC) {
       int fd;
 
       debug(dbg_eachfiledetail, "deferred extract needs fsync");
@@ -1156,7 +1156,7 @@ tar_deferred_extract(struct fileinlist *files, struct 
pkginfo *pkg)
       if (close(fd))
         ohshite(_("error closing/writing '%.255s'"), fnamenewvb.buf);
 
-      cfile->namenode->flags &= ~fnnf_deferred_fsync;
+      cfile->namenode->flags &= ~FNNF_DEFERRED_FSYNC;
     }
 
     debug(dbg_eachfiledetail, "deferred extract needs rename");
@@ -1165,7 +1165,7 @@ tar_deferred_extract(struct fileinlist *files, struct 
pkginfo *pkg)
       ohshite(_("unable to install new version of '%.255s'"),
               cfile->namenode->name);
 
-    cfile->namenode->flags &= ~fnnf_deferred_rename;
+    cfile->namenode->flags &= ~FNNF_DEFERRED_RENAME;
 
     /*
      * CLEANUP: Now the new file is in the destination file, and the
@@ -1174,8 +1174,8 @@ tar_deferred_extract(struct fileinlist *files, struct 
pkginfo *pkg)
      * remove the new file.
      */
 
-    cfile->namenode->flags |= fnnf_placed_on_disk;
-    cfile->namenode->flags |= fnnf_elide_other_lists;
+    cfile->namenode->flags |= FNNF_PLACED_ON_DISK;
+    cfile->namenode->flags |= FNNF_ELIDE_OTHER_LISTS;
 
     debug(dbg_eachfiledetail, "deferred extract done and installed");
   }
diff --git a/src/archives.h b/src/archives.h
index 34d1678cc..19c450c11 100644
--- a/src/archives.h
+++ b/src/archives.h
@@ -29,8 +29,8 @@
 struct tarcontext {
   int backendpipe;
   struct pkginfo *pkg;
-  /** A queue of filenamenode that have been extracted anew. */
-  struct filenamenode_queue *newfiles_queue;
+  /** A queue of fsys_namenode that have been extracted anew. */
+  struct fsys_namenode_queue *newfiles_queue;
   /** Are all “Multi-arch: same” instances about to be in sync? */
   bool pkgset_getting_in_sync;
 };
@@ -72,14 +72,16 @@ void setupfnamevbs(const char *filename);
 
 int tarobject(void *ctx, struct tar_entry *ti);
 int tarfileread(void *ud, char *buf, int len);
-void tar_deferred_extract(struct fileinlist *files, struct pkginfo *pkg);
+void
+tar_deferred_extract(struct fsys_namenode_list *files, struct pkginfo *pkg);
 
-struct fileinlist *
-tar_filenamenode_queue_push(struct filenamenode_queue *queue,
-                            struct filenamenode *namenode);
+struct fsys_namenode_list *
+tar_fsys_namenode_queue_push(struct fsys_namenode_queue *queue,
+                             struct fsys_namenode *namenode);
 
-bool filesavespackage(struct fileinlist *, struct pkginfo *,
-                      struct pkginfo *pkgbeinginstalled);
+bool
+filesavespackage(struct fsys_namenode_list *, struct pkginfo *,
+                 struct pkginfo *pkgbeinginstalled);
 
 void check_conflict(struct dependency *dep, struct pkginfo *pkg,
                     const char *pfilename);
diff --git a/src/cleanup.c b/src/cleanup.c
index cbc690de9..3539fbf31 100644
--- a/src/cleanup.c
+++ b/src/cleanup.c
@@ -66,7 +66,7 @@ int cleanup_pkg_failed=0, cleanup_conflictor_failed=0;
  * look for it.
  */
 void cu_installnew(int argc, void **argv) {
-  struct filenamenode *namenode = argv[0];
+  struct fsys_namenode *namenode = argv[0];
   struct stat stab;
 
   cleanup_pkg_failed++; cleanup_conflictor_failed++;
@@ -76,10 +76,10 @@ void cu_installnew(int argc, void **argv) {
 
   setupfnamevbs(namenode->name);
 
-  if (!(namenode->flags & fnnf_new_conff) && !lstat(fnametmpvb.buf,&stab)) {
+  if (!(namenode->flags & FNNF_NEW_CONFF) && !lstat(fnametmpvb.buf,&stab)) {
     /* OK, «pathname».dpkg-tmp exists. Remove «pathname» and
      * restore «pathname».dpkg-tmp ... */
-    if (namenode->flags & fnnf_no_atomic_overwrite) {
+    if (namenode->flags & FNNF_NO_ATOMIC_OVERWRITE) {
       /* If we can't do an atomic overwrite we have to delete first any
        * link to the new version we may have created. */
       debug(dbg_eachfiledetail,"cu_installnew restoring nonatomic");
@@ -96,7 +96,7 @@ void cu_installnew(int argc, void **argv) {
      * atomic rename did nothing, so we make sure to remove the backup. */
     else if (unlink(fnametmpvb.buf) && errno != ENOENT)
       ohshite(_("unable to remove backup copy of '%.250s'"), namenode->name);
-  } else if (namenode->flags & fnnf_placed_on_disk) {
+  } else if (namenode->flags & FNNF_PLACED_ON_DISK) {
     debug(dbg_eachfiledetail,"cu_installnew removing new file");
     if (secure_remove(fnamevb.buf) && errno != ENOENT && errno != ENOTDIR)
       ohshite(_("unable to remove newly-installed version of '%.250s'"),
diff --git a/src/configure.c b/src/configure.c
index e7237106d..a6d02791c 100644
--- a/src/configure.c
+++ b/src/configure.c
@@ -374,7 +374,7 @@ deferred_configure_ghost_conffile(struct pkginfo *pkg, 
struct conffile *conff)
 static void
 deferred_configure_conffile(struct pkginfo *pkg, struct conffile *conff)
 {
-       struct filenamenode *usenode;
+       struct fsys_namenode *usenode;
        char currenthash[MD5HASHLEN + 1], newdisthash[MD5HASHLEN + 1];
        int useredited, distedited;
        enum conffopt what;
@@ -383,7 +383,7 @@ deferred_configure_conffile(struct pkginfo *pkg, struct 
conffile *conff)
        char *cdr2rest;
        int rc;
 
-       usenode = namenodetouse(findnamenode(conff->name, fnn_nocopy),
+       usenode = namenodetouse(fsys_hash_find_node(conff->name, FHFF_NOCOPY),
                                 pkg, &pkg->installed);
 
        rc = conffderef(pkg, &cdr, usenode->name);
diff --git a/src/divertcmd.c b/src/divertcmd.c
index 8e7b66eeb..202b77066 100644
--- a/src/divertcmd.c
+++ b/src/divertcmd.c
@@ -296,7 +296,7 @@ diversion_check_filename(const char *filename)
 }
 
 static const char *
-diversion_pkg_name(struct diversion *d)
+diversion_pkg_name(struct fsys_diversion *d)
 {
        if (d->pkgset == NULL)
                return ":";
@@ -349,7 +349,7 @@ diversion_current(const char *filename)
 }
 
 static const char *
-diversion_describe(struct diversion *d)
+diversion_describe(struct fsys_diversion *d)
 {
        static struct varbuf str = VARBUF_INIT;
        const char *pkgname;
@@ -376,17 +376,17 @@ divertdb_write(void)
 {
        char *dbname;
        struct atomic_file *file;
-       struct fileiterator *iter;
-       struct filenamenode *namenode;
+       struct fsys_hash_iter *iter;
+       struct fsys_namenode *namenode;
 
        dbname = dpkg_db_get_path(DIVERSIONSFILE);
 
        file = atomic_file_new(dbname, ATOMIC_FILE_BACKUP);
        atomic_file_open(file);
 
-       iter = files_db_iter_new();
-       while ((namenode = files_db_iter_next(iter))) {
-               struct diversion *d = namenode->divert;
+       iter = fsys_hash_iter_new();
+       while ((namenode = fsys_hash_iter_next(iter))) {
+               struct fsys_diversion *d = namenode->divert;
 
                if (d == NULL || d->useinstead == NULL)
                        continue;
@@ -396,7 +396,7 @@ divertdb_write(void)
                        d->useinstead->name,
                        diversion_pkg_name(d));
        }
-       files_db_iter_free(iter);
+       fsys_hash_iter_free(iter);
 
        atomic_file_sync(file);
        atomic_file_close(file);
@@ -407,11 +407,11 @@ divertdb_write(void)
 }
 
 static bool
-diversion_is_essential(struct filenamenode *namenode)
+diversion_is_essential(struct fsys_namenode *namenode)
 {
        struct pkginfo *pkg;
        struct pkgiterator *pkg_iter;
-       struct filepackages_iterator *iter;
+       struct fsys_node_pkgs_iter *iter;
        bool essential = false;
 
        pkg_iter = pkg_db_iter_new();
@@ -421,23 +421,23 @@ diversion_is_essential(struct filenamenode *namenode)
        }
        pkg_db_iter_free(pkg_iter);
 
-       iter = filepackages_iter_new(namenode);
-       while ((pkg = filepackages_iter_next(iter))) {
+       iter = fsys_node_pkgs_iter_new(namenode);
+       while ((pkg = fsys_node_pkgs_iter_next(iter))) {
                if (pkg->installed.essential) {
                        essential = true;
                        break;
                }
        }
-       filepackages_iter_free(iter);
+       fsys_node_pkgs_iter_free(iter);
 
        return essential;
 }
 
 static bool
-diversion_is_owned_by_self(struct pkgset *set, struct filenamenode *namenode)
+diversion_is_owned_by_self(struct pkgset *set, struct fsys_namenode *namenode)
 {
        struct pkginfo *pkg;
-       struct filepackages_iterator *iter;
+       struct fsys_node_pkgs_iter *iter;
        bool owned = false;
 
        if (set == NULL)
@@ -446,14 +446,14 @@ diversion_is_owned_by_self(struct pkgset *set, struct 
filenamenode *namenode)
        for (pkg = &set->pkg; pkg; pkg = pkg->arch_next)
                ensure_packagefiles_available(pkg);
 
-       iter = filepackages_iter_new(namenode);
-       while ((pkg = filepackages_iter_next(iter))) {
+       iter = fsys_node_pkgs_iter_new(namenode);
+       while ((pkg = fsys_node_pkgs_iter_next(iter))) {
                if (pkg->set == set) {
                        owned = true;
                        break;
                }
        }
-       filepackages_iter_free(iter);
+       fsys_node_pkgs_iter_free(iter);
 
        return owned;
 }
@@ -463,8 +463,8 @@ diversion_add(const char *const *argv)
 {
        const char *filename = argv[0];
        struct file file_from, file_to;
-       struct diversion *contest, *altname;
-       struct filenamenode *fnn_from, *fnn_to;
+       struct fsys_diversion *contest, *altname;
+       struct fsys_namenode *fnn_from, *fnn_to;
        struct pkgset *pkgset;
 
        opt_pkgname_match_any = false;
@@ -483,7 +483,7 @@ diversion_add(const char *const *argv)
            S_ISDIR(file_from.stat.st_mode))
                badusage(_("cannot divert directories"));
 
-       fnn_from = findnamenode(filename, 0);
+       fnn_from = fsys_hash_find_node(filename, 0);
 
        /* Handle divertto. */
        if (opt_divertto == NULL)
@@ -494,7 +494,7 @@ diversion_add(const char *const *argv)
 
        file_init(&file_to, opt_divertto);
 
-       fnn_to = findnamenode(opt_divertto, 0);
+       fnn_to = fsys_hash_find_node(opt_divertto, 0);
 
        /* Handle package name. */
        if (opt_pkgname == NULL)
@@ -562,12 +562,12 @@ diversion_add(const char *const *argv)
 }
 
 static bool
-diversion_is_shared(struct pkgset *set, struct filenamenode *namenode)
+diversion_is_shared(struct pkgset *set, struct fsys_namenode *namenode)
 {
        const char *archname;
        struct pkginfo *pkg;
        struct dpkg_arch *arch;
-       struct filepackages_iterator *iter;
+       struct fsys_node_pkgs_iter *iter;
        bool shared = false;
 
        if (set == NULL)
@@ -581,14 +581,14 @@ diversion_is_shared(struct pkgset *set, struct 
filenamenode *namenode)
        for (pkg = &set->pkg; pkg; pkg = pkg->arch_next)
                ensure_packagefiles_available(pkg);
 
-       iter = filepackages_iter_new(namenode);
-       while ((pkg = filepackages_iter_next(iter))) {
+       iter = fsys_node_pkgs_iter_new(namenode);
+       while ((pkg = fsys_node_pkgs_iter_next(iter))) {
                if (pkg->set == set && pkg->installed.arch != arch) {
                        shared = true;
                        break;
                }
        }
-       filepackages_iter_free(iter);
+       fsys_node_pkgs_iter_free(iter);
 
        return shared;
 }
@@ -597,8 +597,8 @@ static int
 diversion_remove(const char *const *argv)
 {
        const char *filename = argv[0];
-       struct filenamenode *namenode;
-       struct diversion *contest, *altname;
+       struct fsys_namenode *namenode;
+       struct fsys_diversion *contest, *altname;
        struct file file_from, file_to;
        struct pkgset *pkgset;
 
@@ -609,7 +609,7 @@ diversion_remove(const char *const *argv)
 
        diversion_check_filename(filename);
 
-       namenode = findnamenode(filename, fnn_nonew);
+       namenode = fsys_hash_find_node(filename, FHFF_NONE);
 
        if (namenode == NULL || namenode->divert == NULL ||
            namenode->divert->useinstead == NULL) {
@@ -675,8 +675,8 @@ diversion_remove(const char *const *argv)
 static int
 diversion_list(const char *const *argv)
 {
-       struct fileiterator *iter;
-       struct filenamenode *namenode;
+       struct fsys_hash_iter *iter;
+       struct fsys_namenode *namenode;
        struct glob_node *glob_list = NULL;
        const char *pattern;
 
@@ -686,11 +686,11 @@ diversion_list(const char *const *argv)
        if (glob_list == NULL)
                glob_list_prepend(&glob_list, m_strdup("*"));
 
-       iter = files_db_iter_new();
-       while ((namenode = files_db_iter_next(iter))) {
+       iter = fsys_hash_iter_new();
+       while ((namenode = fsys_hash_iter_next(iter))) {
                struct glob_node *g;
-               struct diversion *contest = namenode->divert;
-               struct diversion *altname;
+               struct fsys_diversion *contest = namenode->divert;
+               struct fsys_diversion *altname;
                const char *pkgname;
 
                if (contest == NULL || contest->useinstead == NULL)
@@ -709,7 +709,7 @@ diversion_list(const char *const *argv)
                        }
                }
        }
-       files_db_iter_free(iter);
+       fsys_hash_iter_free(iter);
 
        glob_list_free(glob_list);
 
@@ -720,14 +720,14 @@ static int
 diversion_truename(const char *const *argv)
 {
        const char *filename = argv[0];
-       struct filenamenode *namenode;
+       struct fsys_namenode *namenode;
 
        if (!filename || argv[1])
                badusage(_("--%s needs a single argument"), cipaction->olong);
 
        diversion_check_filename(filename);
 
-       namenode = findnamenode(filename, fnn_nonew);
+       namenode = fsys_hash_find_node(filename, FHFF_NONE);
 
        /* Print the given name if file is not diverted. */
        if (namenode && namenode->divert && namenode->divert->useinstead)
@@ -742,14 +742,14 @@ static int
 diversion_listpackage(const char *const *argv)
 {
        const char *filename = argv[0];
-       struct filenamenode *namenode;
+       struct fsys_namenode *namenode;
 
        if (!filename || argv[1])
                badusage(_("--%s needs a single argument"), cipaction->olong);
 
        diversion_check_filename(filename);
 
-       namenode = findnamenode(filename, fnn_nonew);
+       namenode = fsys_hash_find_node(filename, FHFF_NONE);
 
        /* Print nothing if file is not diverted. */
        if (namenode == NULL || namenode->divert == NULL)
@@ -847,7 +847,7 @@ main(int argc, const char * const *argv)
                setaction(&cmdinfo_add, NULL);
 
        modstatdb_open(msdbrw_readonly);
-       filesdbinit();
+       fsys_hash_init();
        ensure_diversions();
 
        ret = cipaction->action(argv);
diff --git a/src/help.c b/src/help.c
index 1859c34d1..f9b8d6b88 100644
--- a/src/help.c
+++ b/src/help.c
@@ -49,11 +49,11 @@ const char *const statusstrings[]= {
   [PKG_STAT_INSTALLED]       = N_("installed")
 };
 
-struct filenamenode *
-namenodetouse(struct filenamenode *namenode, struct pkginfo *pkg,
+struct fsys_namenode *
+namenodetouse(struct fsys_namenode *namenode, struct pkginfo *pkg,
               struct pkgbin *pkgbin)
 {
-  struct filenamenode *fnn;
+  struct fsys_namenode *fnn;
 
   if (!namenode->divert)
     return namenode;
@@ -219,7 +219,7 @@ void clear_istobes(void) {
  * false otherwise.
  */
 bool
-dir_has_conffiles(struct filenamenode *file, struct pkginfo *pkg)
+dir_has_conffiles(struct fsys_namenode *file, struct pkginfo *pkg)
 {
   struct conffile *conff;
   size_t namelen;
@@ -246,26 +246,26 @@ dir_has_conffiles(struct filenamenode *file, struct 
pkginfo *pkg)
  * false otherwise.
  */
 bool
-dir_is_used_by_others(struct filenamenode *file, struct pkginfo *pkg)
+dir_is_used_by_others(struct fsys_namenode *file, struct pkginfo *pkg)
 {
-  struct filepackages_iterator *iter;
+  struct fsys_node_pkgs_iter *iter;
   struct pkginfo *other_pkg;
 
   debug(dbg_veryverbose, "dir_is_used_by_others '%s' (except %s)", file->name,
         pkg ? pkg_name(pkg, pnaw_always) : "<none>");
 
-  iter = filepackages_iter_new(file);
-  while ((other_pkg = filepackages_iter_next(iter))) {
+  iter = fsys_node_pkgs_iter_new(file);
+  while ((other_pkg = fsys_node_pkgs_iter_next(iter))) {
     debug(dbg_veryverbose, "dir_is_used_by_others considering %s ...",
           pkg_name(other_pkg, pnaw_always));
     if (other_pkg == pkg)
       continue;
 
-    filepackages_iter_free(iter);
+    fsys_node_pkgs_iter_free(iter);
     debug(dbg_veryverbose, "dir_is_used_by_others yes");
     return true;
   }
-  filepackages_iter_free(iter);
+  fsys_node_pkgs_iter_free(iter);
 
   debug(dbg_veryverbose, "dir_is_used_by_others no");
   return false;
@@ -275,10 +275,10 @@ dir_is_used_by_others(struct filenamenode *file, struct 
pkginfo *pkg)
  * Returns true if the file is used by pkg, false otherwise.
  */
 bool
-dir_is_used_by_pkg(struct filenamenode *file, struct pkginfo *pkg,
-                   struct fileinlist *list)
+dir_is_used_by_pkg(struct fsys_namenode *file, struct pkginfo *pkg,
+                   struct fsys_namenode_list *list)
 {
-  struct fileinlist *node;
+  struct fsys_namenode_list *node;
   size_t namelen;
 
   debug(dbg_veryverbose, "dir_is_used_by_pkg '%s' (by %s)",
@@ -310,7 +310,7 @@ dir_is_used_by_pkg(struct filenamenode *file, struct 
pkginfo *pkg,
  * @param namenode     The namenode for the obsolete conffile.
  */
 void
-conffile_mark_obsolete(struct pkginfo *pkg, struct filenamenode *namenode)
+conffile_mark_obsolete(struct pkginfo *pkg, struct fsys_namenode *namenode)
 {
   struct conffile *conff;
 
@@ -333,11 +333,11 @@ void
 pkg_conffiles_mark_old(struct pkginfo *pkg)
 {
   const struct conffile *conff;
-  struct filenamenode *namenode;
+  struct fsys_namenode *namenode;
 
   for (conff = pkg->installed.conffiles; conff; conff = conff->next) {
-    namenode = findnamenode(conff->name, 0); /* XXX */
-    namenode->flags |= fnnf_old_conff;
+    namenode = fsys_hash_find_node(conff->name, 0); /* XXX */
+    namenode->flags |= FNNF_OLD_CONFF;
     if (!namenode->oldhash)
       namenode->oldhash = conff->hash;
     debug(dbg_conffdetail, "%s '%s' namenode '%s' flags %o", __func__,
diff --git a/src/main.c b/src/main.c
index b90e736c2..0932695f1 100644
--- a/src/main.c
+++ b/src/main.c
@@ -883,11 +883,11 @@ commandfd(const char *const *argv)
     dpkg_options_parse((const char *const **)&endargs, cmdinfos, printforhelp);
     if (!cipaction) badusage(_("need an action option"));
 
-    filesdbinit();
+    fsys_hash_init();
 
     ret |= cipaction->action(endargs);
 
-    files_db_reset();
+    fsys_hash_reset();
 
     pop_error_context(ehflag_normaltidy);
   }
@@ -929,7 +929,7 @@ int main(int argc, const char *const *argv) {
     run_status_loggers(&status_loggers);
   }
 
-  filesdbinit();
+  fsys_hash_init();
 
   ret = cipaction->action(argv);
 
diff --git a/src/main.h b/src/main.h
index ff6d4364b..944be5ea5 100644
--- a/src/main.h
+++ b/src/main.h
@@ -26,8 +26,8 @@
 #include <dpkg/pkg-list.h>
 
 /* These two are defined in <dpkg/fsys.h>. */
-struct fileinlist;
-struct filenamenode;
+struct fsys_namenode_list;
+struct fsys_namenode;
 
 enum pkg_istobe {
        /** Package is to be left in a normal state. */
@@ -281,13 +281,15 @@ bool ignore_depends(struct pkginfo *pkg);
 bool force_breaks(struct deppossi *possi);
 bool force_depends(struct deppossi *possi);
 bool force_conflicts(struct deppossi *possi);
-void conffile_mark_obsolete(struct pkginfo *pkg, struct filenamenode 
*namenode);
+void
+conffile_mark_obsolete(struct pkginfo *pkg, struct fsys_namenode *namenode);
 void pkg_conffiles_mark_old(struct pkginfo *pkg);
 bool find_command(const char *prog);
 void checkpath(void);
 
-struct filenamenode *namenodetouse(struct filenamenode *namenode,
-                                   struct pkginfo *pkg, struct pkgbin *pkgbin);
+struct fsys_namenode *
+namenodetouse(struct fsys_namenode *namenode,
+              struct pkginfo *pkg, struct pkgbin *pkgbin);
 
 int maintscript_installed(struct pkginfo *pkg, const char *scriptname,
                           const char *desc, ...) DPKG_ATTR_SENTINEL;
@@ -307,10 +309,13 @@ int maintscript_postinst(struct pkginfo *pkg, ...) 
DPKG_ATTR_SENTINEL;
 void post_postinst_tasks(struct pkginfo *pkg, enum pkgstatus new_status);
 
 void clear_istobes(void);
-bool dir_is_used_by_others(struct filenamenode *namenode, struct pkginfo *pkg);
-bool dir_is_used_by_pkg(struct filenamenode *namenode, struct pkginfo *pkg,
-                        struct fileinlist *list);
-bool dir_has_conffiles(struct filenamenode *namenode, struct pkginfo *pkg);
+bool
+dir_is_used_by_others(struct fsys_namenode *namenode, struct pkginfo *pkg);
+bool
+dir_is_used_by_pkg(struct fsys_namenode *namenode, struct pkginfo *pkg,
+                   struct fsys_namenode_list *list);
+bool
+dir_has_conffiles(struct fsys_namenode *namenode, struct pkginfo *pkg);
 
 void log_action(const char *action, struct pkginfo *pkg, struct pkgbin 
*pkgbin);
 
diff --git a/src/querycmd.c b/src/querycmd.c
index 0dba74856..3d5284044 100644
--- a/src/querycmd.c
+++ b/src/querycmd.c
@@ -290,8 +290,10 @@ listpackages(const char *const *argv)
   return rc;
 }
 
-static int searchoutput(struct filenamenode *namenode) {
-  struct filepackages_iterator *iter;
+static int
+searchoutput(struct fsys_namenode *namenode)
+{
+  struct fsys_node_pkgs_iter *iter;
   struct pkginfo *pkg_owner;
   int found;
 
@@ -313,14 +315,14 @@ static int searchoutput(struct filenamenode *namenode) {
   }
   found= 0;
 
-  iter = filepackages_iter_new(namenode);
-  while ((pkg_owner = filepackages_iter_next(iter))) {
+  iter = fsys_node_pkgs_iter_new(namenode);
+  while ((pkg_owner = fsys_node_pkgs_iter_next(iter))) {
     if (found)
       fputs(", ", stdout);
     fputs(pkg_name(pkg_owner, pnaw_nonambig), stdout);
     found++;
   }
-  filepackages_iter_free(iter);
+  fsys_node_pkgs_iter_free(iter);
 
   if (found) printf(": %s\n",namenode->name);
   return found + (namenode->divert ? 1 : 0);
@@ -329,8 +331,8 @@ static int searchoutput(struct filenamenode *namenode) {
 static int
 searchfiles(const char *const *argv)
 {
-  struct filenamenode *namenode;
-  struct fileiterator *iter;
+  struct fsys_namenode *namenode;
+  struct fsys_hash_iter *iter;
   const char *thisarg;
   int found;
   int failures = 0;
@@ -363,15 +365,15 @@ searchfiles(const char *const *argv)
       varbuf_end_str(&path);
       varbuf_trunc(&path, path_trim_slash_slashdot(path.buf));
 
-      namenode = findnamenode(path.buf, 0);
+      namenode = fsys_hash_find_node(path.buf, 0);
       found += searchoutput(namenode);
     } else {
-      iter = files_db_iter_new();
-      while ((namenode = files_db_iter_next(iter)) != NULL) {
+      iter = fsys_hash_iter_new();
+      while ((namenode = fsys_hash_iter_next(iter)) != NULL) {
         if (fnmatch(thisarg,namenode->name,0)) continue;
         found+= searchoutput(namenode);
       }
-      files_db_iter_free(iter);
+      fsys_hash_iter_free(iter);
     }
     if (!found) {
       notice(_("no path found matching pattern %s"), thisarg);
@@ -474,9 +476,9 @@ static int
 list_files(const char *const *argv)
 {
   const char *thisarg;
-  struct fileinlist *file;
+  struct fsys_namenode_list *file;
   struct pkginfo *pkg;
-  struct filenamenode *namenode;
+  struct fsys_namenode *namenode;
   int failures = 0;
 
   if (!*argv)
@@ -855,7 +857,7 @@ int main(int argc, const char *const *argv) {
 
   if (!cipaction) badusage(_("need an action option"));
 
-  filesdbinit();
+  fsys_hash_init();
 
   ret = cipaction->action(argv);
 
diff --git a/src/remove.c b/src/remove.c
index 01d926387..39584aa85 100644
--- a/src/remove.c
+++ b/src/remove.c
@@ -164,7 +164,7 @@ void deferred_remove(struct pkginfo *pkg) {
                   " reinstall it before attempting a removal"));
 
   ensure_allinstfiles_available();
-  filesdbinit();
+  fsys_hash_init();
 
   if (f_noact) {
     printf(_("Would remove or purge %s (%s) ...\n"),
@@ -203,9 +203,12 @@ void deferred_remove(struct pkginfo *pkg) {
   removal_bulk(pkg);
 }
 
-static void push_leftover(struct fileinlist **leftoverp,
-                          struct filenamenode *namenode) {
-  struct fileinlist *newentry;
+static void
+push_leftover(struct fsys_namenode_list **leftoverp,
+              struct fsys_namenode *namenode)
+{
+  struct fsys_namenode_list *newentry;
+
   newentry = nfmalloc(sizeof(*newentry));
   newentry->next= *leftoverp;
   newentry->namenode= namenode;
@@ -229,17 +232,17 @@ removal_bulk_remove_file(const char *filename, const char 
*filetype)
 }
 
 static bool
-removal_bulk_file_is_shared(struct pkginfo *pkg, struct filenamenode *namenode)
+removal_bulk_file_is_shared(struct pkginfo *pkg, struct fsys_namenode 
*namenode)
 {
-  struct filepackages_iterator *iter;
+  struct fsys_node_pkgs_iter *iter;
   struct pkginfo *otherpkg;
   bool shared = false;
 
   if (pkgset_installed_instances(pkg->set) <= 1)
     return false;
 
-  iter = filepackages_iter_new(namenode);
-  while ((otherpkg = filepackages_iter_next(iter))) {
+  iter = fsys_node_pkgs_iter_new(namenode);
+  while ((otherpkg = fsys_node_pkgs_iter_next(iter))) {
     if (otherpkg == pkg)
       continue;
     if (otherpkg->set != pkg->set)
@@ -250,7 +253,7 @@ removal_bulk_file_is_shared(struct pkginfo *pkg, struct 
filenamenode *namenode)
     shared = true;
     break;
   }
-  filepackages_iter_free(iter);
+  fsys_node_pkgs_iter_free(iter);
 
   return shared;
 }
@@ -258,9 +261,9 @@ removal_bulk_file_is_shared(struct pkginfo *pkg, struct 
filenamenode *namenode)
 static void
 removal_bulk_remove_files(struct pkginfo *pkg)
 {
-  struct reversefilelistiter rev_iter;
-  struct fileinlist *leftover;
-  struct filenamenode *namenode;
+  struct fsys_hash_rev_iter rev_iter;
+  struct fsys_namenode_list *leftover;
+  struct fsys_namenode *namenode;
   static struct varbuf fnvb;
   struct varbuf_state fnvb_state;
   struct stat stab;
@@ -269,10 +272,10 @@ removal_bulk_remove_files(struct pkginfo *pkg)
     modstatdb_note(pkg);
     push_checkpoint(~ehflag_bombout, ehflag_normaltidy);
 
-    reversefilelist_init(&rev_iter, pkg->files);
+    fsys_hash_rev_iter_init(&rev_iter, pkg->files);
     leftover = NULL;
-    while ((namenode = reversefilelist_next(&rev_iter))) {
-      struct filenamenode *usenode;
+    while ((namenode = fsys_hash_rev_iter_next(&rev_iter))) {
+      struct fsys_namenode *usenode;
       bool is_dir;
 
       debug(dbg_eachfile, "removal_bulk '%s' flags=%o",
@@ -295,7 +298,7 @@ removal_bulk_remove_files(struct pkginfo *pkg)
         continue;
 
       /* Non-shared conffiles are kept. */
-      if (namenode->flags & fnnf_old_conff) {
+      if (namenode->flags & FNNF_OLD_CONFF) {
         push_leftover(&leftover, namenode);
         continue;
       }
@@ -380,9 +383,9 @@ removal_bulk_remove_files(struct pkginfo *pkg)
 }
 
 static void removal_bulk_remove_leftover_dirs(struct pkginfo *pkg) {
-  struct reversefilelistiter rev_iter;
-  struct fileinlist *leftover;
-  struct filenamenode *namenode;
+  struct fsys_hash_rev_iter rev_iter;
+  struct fsys_namenode_list *leftover;
+  struct fsys_namenode *namenode;
   static struct varbuf fnvb;
   struct stat stab;
 
@@ -392,14 +395,14 @@ static void removal_bulk_remove_leftover_dirs(struct 
pkginfo *pkg) {
   modstatdb_note(pkg);
   push_checkpoint(~ehflag_bombout, ehflag_normaltidy);
 
-  reversefilelist_init(&rev_iter, pkg->files);
+  fsys_hash_rev_iter_init(&rev_iter, pkg->files);
   leftover = NULL;
-  while ((namenode = reversefilelist_next(&rev_iter))) {
-    struct filenamenode *usenode;
+  while ((namenode = fsys_hash_rev_iter_next(&rev_iter))) {
+    struct fsys_namenode *usenode;
 
     debug(dbg_eachfile, "removal_bulk '%s' flags=%o",
           namenode->name, namenode->flags);
-    if (namenode->flags & fnnf_old_conff) {
+    if (namenode->flags & FNNF_OLD_CONFF) {
       /* This can only happen if removal_bulk_remove_configfiles() got
        * interrupted half way. */
       debug(dbg_eachfiledetail, "removal_bulk expecting only left over dirs, "
@@ -477,7 +480,7 @@ static void removal_bulk_remove_configfiles(struct pkginfo 
*pkg) {
   int conffnameused, conffbasenamelen;
   char *conffbasename;
   struct conffile *conff, **lconffp;
-  struct fileinlist *searchfile;
+  struct fsys_namenode_list *searchfile;
   DIR *dsd;
   struct dirent *de;
   char *p;
@@ -525,7 +528,7 @@ static void removal_bulk_remove_configfiles(struct pkginfo 
*pkg) {
     modstatdb_note(pkg);
 
     for (conff= pkg->installed.conffiles; conff; conff= conff->next) {
-      struct filenamenode *namenode, *usenode;
+      struct fsys_namenode *namenode, *usenode;
     static struct varbuf fnvb, removevb;
       struct varbuf_state removevb_state;
 
@@ -540,7 +543,7 @@ static void removal_bulk_remove_configfiles(struct pkginfo 
*pkg) {
       if (rc == -1)
         continue;
 
-      namenode = findnamenode(conff->name, 0);
+      namenode = fsys_hash_find_node(conff->name, 0);
       usenode = namenodetouse(namenode, pkg, &pkg->installed);
 
       trig_path_activate(usenode, pkg);
@@ -609,7 +612,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->files,
-                          fnnf_old_conff);
+                          FNNF_OLD_CONFF);
 
     pkg->installed.conffiles = NULL;
     modstatdb_note(pkg);
diff --git a/src/statcmd.c b/src/statcmd.c
index 741b50000..4a6af8675 100644
--- a/src/statcmd.c
+++ b/src/statcmd.c
@@ -153,9 +153,9 @@ statdb_node_new(const char *user, const char *group, const 
char *mode)
 static struct file_stat **
 statdb_node_find(const char *filename)
 {
-       struct filenamenode *file;
+       struct fsys_namenode *file;
 
-       file = findnamenode(filename, 0);
+       file = fsys_hash_find_node(filename, 0);
 
        return &file->statoverride;
 }
@@ -163,9 +163,9 @@ statdb_node_find(const char *filename)
 static int
 statdb_node_remove(const char *filename)
 {
-       struct filenamenode *file;
+       struct fsys_namenode *file;
 
-       file = findnamenode(filename, fnn_nonew);
+       file = fsys_hash_find_node(filename, FHFF_NONE);
        if (!file || !file->statoverride)
                return 0;
 
@@ -188,7 +188,7 @@ statdb_node_apply(const char *filename, struct file_stat 
*filestat)
 }
 
 static void
-statdb_node_print(FILE *out, struct filenamenode *file)
+statdb_node_print(FILE *out, struct fsys_namenode *file)
 {
        struct file_stat *filestat = file->statoverride;
        struct passwd *pw;
@@ -221,17 +221,17 @@ statdb_write(void)
 {
        char *dbname;
        struct atomic_file *dbfile;
-       struct fileiterator *iter;
-       struct filenamenode *file;
+       struct fsys_hash_iter *iter;
+       struct fsys_namenode *file;
 
        dbname = dpkg_db_get_path(STATOVERRIDEFILE);
        dbfile = atomic_file_new(dbname, ATOMIC_FILE_BACKUP);
        atomic_file_open(dbfile);
 
-       iter = files_db_iter_new();
-       while ((file = files_db_iter_next(iter)))
+       iter = fsys_hash_iter_new();
+       while ((file = fsys_hash_iter_next(iter)))
                statdb_node_print(dbfile->fp, file);
-       files_db_iter_free(iter);
+       fsys_hash_iter_free(iter);
 
        atomic_file_sync(dbfile);
        atomic_file_close(dbfile);
@@ -333,8 +333,8 @@ statoverride_remove(const char *const *argv)
 static int
 statoverride_list(const char *const *argv)
 {
-       struct fileiterator *iter;
-       struct filenamenode *file;
+       struct fsys_hash_iter *iter;
+       struct fsys_namenode *file;
        const char *thisarg;
        struct glob_node *glob_list = NULL;
        int ret = 1;
@@ -347,8 +347,8 @@ statoverride_list(const char *const *argv)
        if (glob_list == NULL)
                glob_list_prepend(&glob_list, m_strdup("*"));
 
-       iter = files_db_iter_new();
-       while ((file = files_db_iter_next(iter))) {
+       iter = fsys_hash_iter_new();
+       while ((file = fsys_hash_iter_next(iter))) {
                struct glob_node *g;
 
                for (g = glob_list; g; g = g->next) {
@@ -359,7 +359,7 @@ statoverride_list(const char *const *argv)
                        }
                }
        }
-       files_db_iter_free(iter);
+       fsys_hash_iter_free(iter);
 
        glob_list_free(glob_list);
 
@@ -397,7 +397,7 @@ main(int argc, const char *const *argv)
        if (!cipaction)
                badusage(_("need an action option"));
 
-       filesdbinit();
+       fsys_hash_init();
        ensure_statoverrides(STATDB_PARSE_LAX);
 
        ret = cipaction->action(argv);
diff --git a/src/trigcmd.c b/src/trigcmd.c
index bc0d2f9a2..af8119c87 100644
--- a/src/trigcmd.c
+++ b/src/trigcmd.c
@@ -229,7 +229,7 @@ main(int argc, const char *const *argv)
                badusage(_("illegal awaited package name '%.250s': %.250s"),
                         bypackage, badname);
 
-       filesdbinit();
+       fsys_hash_init();
 
        activate = argv[0];
        badname = trig_name_is_illegal(activate);
diff --git a/src/unpack.c b/src/unpack.c
index 3459b93c4..ceb17a2c3 100644
--- a/src/unpack.c
+++ b/src/unpack.c
@@ -322,7 +322,7 @@ pkg_deconfigure_others(struct pkginfo *pkg)
  */
 static void
 deb_parse_conffiles(struct pkginfo *pkg, const char *control_conffiles,
-                    struct filenamenode_queue *newconffiles)
+                    struct fsys_namenode_queue *newconffiles)
 {
   FILE *conff;
   char conffilenamebuf[MAXCONFFILENAME];
@@ -338,9 +338,9 @@ deb_parse_conffiles(struct pkginfo *pkg, const char 
*control_conffiles,
 
   while (fgets(conffilenamebuf, MAXCONFFILENAME - 2, conff)) {
     struct pkginfo *otherpkg;
-    struct filepackages_iterator *iter;
-    struct filenamenode *namenode;
-    struct fileinlist *newconff;
+    struct fsys_node_pkgs_iter *iter;
+    struct fsys_namenode *namenode;
+    struct fsys_namenode_list *newconff;
     struct conffile *searchconff;
     char *p;
 
@@ -356,9 +356,9 @@ deb_parse_conffiles(struct pkginfo *pkg, const char 
*control_conffiles,
       continue;
     *p = '\0';
 
-    namenode = findnamenode(conffilenamebuf, 0);
+    namenode = fsys_hash_find_node(conffilenamebuf, 0);
     namenode->oldhash = NEWCONFFILEFLAG;
-    newconff = tar_filenamenode_queue_push(newconffiles, namenode);
+    newconff = tar_fsys_namenode_queue_push(newconffiles, namenode);
 
     /*
      * Let's see if any packages have this file.
@@ -377,8 +377,8 @@ deb_parse_conffiles(struct pkginfo *pkg, const char 
*control_conffiles,
      */
     searchconff = NULL;
 
-    iter = filepackages_iter_new(newconff->namenode);
-    while ((otherpkg = filepackages_iter_next(iter))) {
+    iter = fsys_node_pkgs_iter_new(newconff->namenode);
+    while ((otherpkg = fsys_node_pkgs_iter_next(iter))) {
       debug(dbg_conffdetail,
             "process_archive conffile '%s' in package %s - conff ?",
             newconff->namenode->name, pkg_name(otherpkg, pnaw_always));
@@ -399,7 +399,7 @@ deb_parse_conffiles(struct pkginfo *pkg, const char 
*control_conffiles,
           break;
       }
     }
-    filepackages_iter_free(iter);
+    fsys_node_pkgs_iter_free(iter);
 
     if (searchconff) {
       /* We don't copy ‘obsolete’; it's not obsolete in the new package. */
@@ -408,7 +408,7 @@ deb_parse_conffiles(struct pkginfo *pkg, const char 
*control_conffiles,
       debug(dbg_conff, "process_archive conffile '%s' no package, no hash",
             newconff->namenode->name);
     }
-    newconff->namenode->flags |= fnnf_new_conff;
+    newconff->namenode->flags |= FNNF_NEW_CONFF;
   }
 
   if (ferror(conff))
@@ -556,20 +556,20 @@ pkg_infodb_update(struct pkginfo *pkg, char *cidir, char 
*cidirrest)
 
 static void
 pkg_remove_old_files(struct pkginfo *pkg,
-                     struct filenamenode_queue *newfiles_queue,
-                     struct filenamenode_queue *newconffiles)
+                     struct fsys_namenode_queue *newfiles_queue,
+                     struct fsys_namenode_queue *newconffiles)
 {
-  struct reversefilelistiter rev_iter;
-  struct filenamenode *namenode;
+  struct fsys_hash_rev_iter rev_iter;
+  struct fsys_namenode *namenode;
   struct stat stab, oldfs;
 
-  reversefilelist_init(&rev_iter, pkg->files);
+  fsys_hash_rev_iter_init(&rev_iter, pkg->files);
 
-  while ((namenode = reversefilelist_next(&rev_iter))) {
-    struct filenamenode *usenode;
+  while ((namenode = fsys_hash_rev_iter_next(&rev_iter))) {
+    struct fsys_namenode *usenode;
 
-    if ((namenode->flags & fnnf_new_conff) ||
-        (namenode->flags & fnnf_new_inarchive))
+    if ((namenode->flags & FNNF_NEW_CONFF) ||
+        (namenode->flags & FNNF_NEW_INARCHIVE))
       continue;
 
     usenode = namenodetouse(namenode, pkg, &pkg->installed);
@@ -601,13 +601,13 @@ pkg_remove_old_files(struct pkginfo *pkg,
       if (rmdir(fnamevb.buf)) {
         warning(_("unable to delete old directory '%.250s': %s"),
                 namenode->name, strerror(errno));
-      } else if ((namenode->flags & fnnf_old_conff)) {
+      } else if ((namenode->flags & FNNF_OLD_CONFF)) {
         warning(_("old conffile '%.250s' was an empty directory "
                   "(and has now been deleted)"), namenode->name);
       }
     } else {
-      struct fileinlist *sameas = NULL;
-      struct fileinlist *cfile;
+      struct fsys_namenode_list *sameas = NULL;
+      struct fsys_namenode_list *cfile;
       static struct file_ondisk_id empty_ondisk_id;
       struct varbuf cfilename = VARBUF_INIT;
 
@@ -634,7 +634,7 @@ pkg_remove_old_files(struct pkginfo *pkg,
       for (cfile = newfiles_queue->head; cfile; cfile = cfile->next) {
         /* If the file has been filtered then treat it as if it didn't exist
          * on the file system. */
-        if (cfile->namenode->flags & fnnf_filtered)
+        if (cfile->namenode->flags & FNNF_FILTERED)
           continue;
 
         if (cfile->namenode->file_ondisk_id == NULL) {
@@ -678,9 +678,9 @@ pkg_remove_old_files(struct pkginfo *pkg,
 
       varbuf_destroy(&cfilename);
 
-      if ((namenode->flags & fnnf_old_conff)) {
+      if ((namenode->flags & FNNF_OLD_CONFF)) {
         if (sameas) {
-          if (sameas->namenode->flags & fnnf_new_conff) {
+          if (sameas->namenode->flags & FNNF_NEW_CONFF) {
             if (strcmp(sameas->namenode->oldhash, NEWCONFFILEFLAG) == 0) {
               sameas->namenode->oldhash = namenode->oldhash;
               debug(dbg_eachfile, "process_archive: old conff %s "
@@ -695,9 +695,9 @@ pkg_remove_old_files(struct pkginfo *pkg,
         } else {
           debug(dbg_eachfile, "process_archive: old conff %s "
                 "is disappearing", namenode->name);
-          namenode->flags |= fnnf_obs_conff;
-          tar_filenamenode_queue_push(newconffiles, namenode);
-          tar_filenamenode_queue_push(newfiles_queue, namenode);
+          namenode->flags |= FNNF_OBS_CONFF;
+          tar_fsys_namenode_queue_push(newconffiles, namenode);
+          tar_fsys_namenode_queue_push(newfiles_queue, namenode);
         }
         continue;
       }
@@ -716,13 +716,13 @@ pkg_remove_old_files(struct pkginfo *pkg,
 }
 
 static void
-pkg_update_fields(struct pkginfo *pkg, struct filenamenode_queue *newconffiles)
+pkg_update_fields(struct pkginfo *pkg, struct fsys_namenode_queue 
*newconffiles)
 {
   struct dependency *newdeplist, **newdeplistlastp;
   struct dependency *newdep, *dep;
   struct deppossi **newpossilastp, *possi, *newpossi;
   struct conffile **iconffileslastp, *newiconff;
-  struct fileinlist *cfile;
+  struct fsys_namenode_list *cfile;
 
   /* The dependencies are the most difficult. We have to build
    * a whole new forward dependency tree. At least the reverse
@@ -787,7 +787,7 @@ pkg_update_fields(struct pkginfo *pkg, struct 
filenamenode_queue *newconffiles)
     newiconff->next = NULL;
     newiconff->name = nfstrsave(cfile->namenode->name);
     newiconff->hash = nfstrsave(cfile->namenode->oldhash);
-    newiconff->obsolete = !!(cfile->namenode->flags & fnnf_obs_conff);
+    newiconff->obsolete = !!(cfile->namenode->flags & FNNF_OBS_CONFF);
     *iconffileslastp = newiconff;
     iconffileslastp = &newiconff->next;
   }
@@ -838,7 +838,7 @@ pkg_disappear_others(struct pkginfo *pkg)
 {
   struct pkgiterator *iter;
   struct pkginfo *otherpkg;
-  struct fileinlist *cfile;
+  struct fsys_namenode_list *cfile;
   struct deppossi *pdep;
   struct dependency *providecheck;
   struct varbuf depprobwhy = VARBUF_INIT;
@@ -968,16 +968,16 @@ pkgset_getting_in_sync(struct pkginfo *pkg)
 }
 
 static void
-pkg_remove_files_from_others(struct pkginfo *pkg, struct fileinlist 
*newfileslist)
+pkg_remove_files_from_others(struct pkginfo *pkg, struct fsys_namenode_list 
*newfileslist)
 {
-  struct fileinlist *cfile;
+  struct fsys_namenode_list *cfile;
   struct pkginfo *otherpkg;
 
   for (cfile = newfileslist; cfile; cfile = cfile->next) {
-    struct filepackages_iterator *iter;
+    struct fsys_node_pkgs_iter *iter;
     struct pkgset *divpkgset;
 
-    if (!(cfile->namenode->flags & fnnf_elide_other_lists))
+    if (!(cfile->namenode->flags & FNNF_ELIDE_OTHER_LISTS))
       continue;
 
     if (cfile->namenode->divert && cfile->namenode->divert->useinstead) {
@@ -998,8 +998,8 @@ pkg_remove_files_from_others(struct pkginfo *pkg, struct 
fileinlist *newfileslis
             cfile->namenode->name);
     }
 
-    iter = filepackages_iter_new(cfile->namenode);
-    while ((otherpkg = filepackages_iter_next(iter))) {
+    iter = fsys_node_pkgs_iter_new(cfile->namenode);
+    while ((otherpkg = fsys_node_pkgs_iter_next(iter))) {
       debug(dbg_eachfiledetail, "process_archive ... found in %s",
             pkg_name(otherpkg, pnaw_always));
 
@@ -1013,7 +1013,7 @@ pkg_remove_files_from_others(struct pkginfo *pkg, struct 
fileinlist *newfileslis
         continue;
       }
 
-      if (cfile->namenode->flags & fnnf_new_conff)
+      if (cfile->namenode->flags & FNNF_NEW_CONFF)
         conffile_mark_obsolete(otherpkg, cfile->namenode);
 
       /* If !files_list_valid then it's one of the disappeared packages above
@@ -1026,23 +1026,23 @@ pkg_remove_files_from_others(struct pkginfo *pkg, 
struct fileinlist *newfileslis
        * (and any others in the same package) and then mark the package
        * as requiring a reread. */
       write_filelist_except(otherpkg, &otherpkg->installed,
-                            otherpkg->files, fnnf_elide_other_lists);
+                            otherpkg->files, FNNF_ELIDE_OTHER_LISTS);
       debug(dbg_veryverbose, "process_archive overwrote from %s",
             pkg_name(otherpkg, pnaw_always));
     }
-    filepackages_iter_free(iter);
+    fsys_node_pkgs_iter_free(iter);
   }
 }
 
 static void
-pkg_remove_backup_files(struct pkginfo *pkg, struct fileinlist *newfileslist)
+pkg_remove_backup_files(struct pkginfo *pkg, struct fsys_namenode_list 
*newfileslist)
 {
-  struct fileinlist *cfile;
+  struct fsys_namenode_list *cfile;
 
   for (cfile = newfileslist; cfile; cfile = cfile->next) {
-    struct filenamenode *usenode;
+    struct fsys_namenode *usenode;
 
-    if (cfile->namenode->flags & fnnf_new_conff)
+    if (cfile->namenode->flags & FNNF_NEW_CONFF)
       continue;
 
     usenode = namenodetouse(cfile->namenode, pkg, &pkg->installed);
@@ -1087,7 +1087,7 @@ void process_archive(const char *filename) {
   char *cidirrest;
   char *psize;
   const char *pfilename;
-  struct filenamenode_queue newconffiles, newfiles_queue;
+  struct fsys_namenode_queue newconffiles, newfiles_queue;
   struct stat stab;
 
   cleanup_pkg_failed= cleanup_conflictor_failed= 0;
@@ -1193,7 +1193,7 @@ void process_archive(const char *filename) {
   pkg_check_depcon(pkg, pfilename);
 
   ensure_allinstfiles_available();
-  filesdbinit();
+  fsys_hash_init();
   trig_file_interests_ensure();
 
   printf(_("Preparing to unpack %s ...\n"), pfilename);
diff --git a/src/verify.c b/src/verify.c
index 6067fb1ac..4190981f7 100644
--- a/src/verify.c
+++ b/src/verify.c
@@ -45,7 +45,7 @@ struct verify_checks {
        enum verify_result md5sum;
 };
 
-typedef void verify_output_func(struct filenamenode *, struct verify_checks *);
+typedef void verify_output_func(struct fsys_namenode *, struct verify_checks 
*);
 
 static int
 verify_result_rpm(enum verify_result result, int check)
@@ -62,7 +62,7 @@ verify_result_rpm(enum verify_result result, int check)
 }
 
 static void
-verify_output_rpm(struct filenamenode *namenode, struct verify_checks *checks)
+verify_output_rpm(struct fsys_namenode *namenode, struct verify_checks *checks)
 {
        char result[9];
        int attr;
@@ -71,7 +71,7 @@ verify_output_rpm(struct filenamenode *namenode, struct 
verify_checks *checks)
 
        result[2] = verify_result_rpm(checks->md5sum, '5');
 
-       if (namenode->flags & fnnf_old_conff)
+       if (namenode->flags & FNNF_OLD_CONFF)
                attr = 'c';
        else
                attr = ' ';
@@ -95,7 +95,7 @@ verify_set_output(const char *name)
 static void
 verify_package(struct pkginfo *pkg)
 {
-       struct fileinlist *file;
+       struct fsys_namenode_list *file;
        struct varbuf filename = VARBUF_INIT;
 
        ensure_packagefiles_available(pkg);
@@ -104,7 +104,7 @@ verify_package(struct pkginfo *pkg)
 
        for (file = pkg->files; file; file = file->next) {
                struct verify_checks checks;
-               struct filenamenode *fnn;
+               struct fsys_namenode *fnn;
                char hash[MD5HASHLEN + 1];
                int failures = 0;
 

-- 
Dpkg.Org's dpkg

Reply via email to