[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-tar] --one-file-system option's interaction with --listed-incre
From: |
Nathan Stratton Treadway |
Subject: |
Re: [Bug-tar] --one-file-system option's interaction with --listed-incremental |
Date: |
Mon, 28 May 2012 10:04:20 -0400 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
On Sun, May 27, 2012 at 17:24:17 -0400, Nathan Stratton Treadway wrote:
> I can think of a few changes that seem like they would fix this issue,
> but I am not confident enough in my understanding of all the possible
> paths through the directory-tree-scanning routines to know which is best
> (or what else I might be missing -- for example, I haven't try to figure
> out what would happen if the level-0 snapshot file included multiple
> levels of sub-directories under the "subdir" mount point):
>
> * in procdir(), when setting directory->children = NO_CHILDREN because
> of the one-file-system check, also delete any existing
> directory->dump .
>
> * in scan_directory(), if the returned directory's "children" is set
> to NO_CHILDREN, delete directory's existing "dump" (in place of the
> makedumpdir()-and-loop that would be done for other "children"
> values).
>
> * in create_archive() loop just before
> q = directory_contents (gnu_list_name->directory)
> , add either add a check to see of gnu_list_name->directory->children
> has NO_CHILDREN set, or add an explicit one-file-system check
> against gnu_list_name->directory and its parent.
I got to wondering if there were other situations were procdir() set
directory->children to NO_CHILDREN... and sure enough a quick test with
--exclude-tag= shows the same sort of behavior related to
subdir/subdir-file if the exclude-tag file is created under subdir/
between the level 0 and level 1 backups. (The steps to reproduce are
very similar to the ones for the one-file-system test case, but I can
send the full listing if anyone is interested.)
So, of those three original ideas, I think only the second on (the check
for NO_CHILDREN in scan_directory() would also fix this --exclude-tag
case....
Nathan
----------------------------------------------------------------------------
Nathan Stratton Treadway - address@hidden - Mid-Atlantic region
Ray Ontko & Co. - Software consulting services - http://www.ontko.com/
GPG Key: http://www.ontko.com/~nathanst/gpg_key.txt ID: 1023D/ECFB6239
Key fingerprint = 6AD8 485E 20B9 5C71 231C 0C32 15F3 ADCD ECFB 6239