Amanda calls tar like this: | tar -v --create --file /dev/null --directory / --one-file-system --sparse --ignore-failed-read --totals --exclude-from /tmp/amanda/sendbackup._.20061017012636.exclude --listed-incremental /tmp/xxx .
If `--listed-incremental /tmp/xxx' is removed, --one-file-system works correctly. The code to decide whether to include a child directory or not looks like (src/incremen.c:procdir()): | if (one_file_system_option && device != stat_data->st_dev | /* ... except if it was explicitely given in the command line */ | && !((np = name_scan (name_buffer, true)) && np->explicit)) | directory->children = NO_CHILDREN; | else if (children == ALL_CHILDREN) | directory->children = ALL_CHILDREN; The third condition `!((np = name_scan (name_buffer, true)) && np->explicit)' (which was not present in tar 1.14!) causes the problem. For e.g. name_buffer = "./home" (which is on a separate partition), struct name pointed to by np looks like: np->name = "." np->explicit = 1 np->matching_flags = 40000008 If I replace the `.' (final argument) in the tar command line above by `/', name_scan("./home", true) returns NULL and the directory is not included. However, this should give the exact same results, as I'm backing up the root file system. So it looks like a bug in name_scan(). Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [EMAIL PROTECTED] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]