]> git.wh0rd.org - dump.git/commitdiff
Properly deal with inodes excluded from incremental dump
authorStelian Pop <stelian@popies.net>
Mon, 22 Mar 2010 16:08:10 +0000 (16:08 +0000)
committerStelian Pop <stelian@popies.net>
Mon, 22 Mar 2010 16:08:10 +0000 (16:08 +0000)
Files which are excluded from a dump (via -e or the nodump attribute)
still have their inode marked as in-use in the dump header.  This can
cause problems when restoring from an incremental dump, if that inode is
currently assigned in the symtable:

  - If assigned to a file that is being overwritten by another inode,
    the old entry will be renamed away, but never reclaimed, thus
    leaving the TMPNAME flag turned on and preventing its removal.

  - If assigned to a directory, that directory will not be removed by
    removeoldleaves(), and its entry will linger on in its parent's
    e_entries.

    - If its parent is being updated, removeleaf() will wrongly be
      called on the entry.  The above comment about TMPNAME also
      applies.

    - If its parent is being deleted, this will fail due to the entry's
      presence.


No differences found