freebsd-skq/sbin/restore
Kirk McKusick 8b273fc833 By default, when doing incremental restores the restore program
overwrites an existing file rather than removing it and creating a
new file.  If the old and new version of the file both have extended
attributes and the extended attributes of the two versions of the
file are different, the result is that the new file ends up with
the union of the extended attributes of the old and new files.

To get the behavior of replacing the extended attributes rather
than augmenting them requires explicitly removing the old attributes
and then adding the new ones.

To get this behavior, the old file must be unlinked (which clears
out the old extended attributes).  Then the new file of the same
name must be created and the new extended attributes added to it.

This behavior can be obtained by specifying the -u flag when running
restore.  Rather than defaulting the -u option to on and possibly
breaking existing scripts using restore, this change simply notes
in the restore.8 manual page that the -u flag is recommended when
using restore on filesystems that contain extended attributes.

PR:                     216127
Reported by:            dewayne at heuristicsystems.com.au
Differential Revision:  https://reviews.freebsd.org/D9208
2017-01-22 17:49:14 +00:00
..
dirs.c restore(8): Handle extended attribute names correctly 2017-01-18 18:16:57 +00:00
extern.h restore(8): Handle extended attribute names correctly 2017-01-18 18:16:57 +00:00
interactive.c restore: use our howmany() instead of reinventing the macro. 2016-04-30 20:05:23 +00:00
main.c restore: fix memory leak. 2016-04-30 22:51:09 +00:00
Makefile
Makefile.depend
restore.8 By default, when doing incremental restores the restore program 2017-01-22 17:49:14 +00:00
restore.c
restore.h
symtab.c restore: fix resource handle leak. 2016-05-01 02:39:39 +00:00
tape.c restore(8): Handle extended attribute names correctly 2017-01-18 18:16:57 +00:00
utilities.c Use NULL instead of 0 for pointers. 2016-04-18 14:08:35 +00:00