aboutsummaryrefslogtreecommitdiff
path: root/include/protocols
diff options
context:
space:
mode:
authorKirk McKusick <mckusick@FreeBSD.org>2007-02-26 08:15:56 +0000
committerKirk McKusick <mckusick@FreeBSD.org>2007-02-26 08:15:56 +0000
commit772ad651bf7af82b57558e5a6268e3961e9c2ad8 (patch)
tree2804c9d36c181a4e54a05d8bca1ea7ca7d284525 /include/protocols
parentfdece2b8f73a053931da1593a869c2eb6437bddd (diff)
downloadsrc-772ad651bf7af82b57558e5a6268e3961e9c2ad8.tar.gz
src-772ad651bf7af82b57558e5a6268e3961e9c2ad8.zip
Update the dump program to save extended attributes. Update
the restore program to restore all dumped extended attributes. If the restore is running as root, it will always be able to restore all extended attributes. If it is not running as root, it makes a best effort to set them. Using the -v command line flag or the `verbose' command in interactive mode will display all the extended attributes being set on files (and at the end on directories) that are being restored. It will note any extended attributes that could not be set. The extended attributes are placed on the dump image immediately following each file's data. Older versions of restore can work with the newer dump images. Old versions of restore will correctly restore the file data and then (silently) skip over the extended attribute data and proceed to the next file. This resolves PR 93085 which will be closed once the code has been MFC'ed. Note that this code will not compile until these header files have been updated: <protocols/dumprestore.h> and <sys/extattr.h>. PR: bin/93085 Comments from: Poul-Henning Kamp and Robert Watson MFC after: 3 weeks
Notes
Notes: svn path=/head/; revision=167011
Diffstat (limited to 'include/protocols')
-rw-r--r--include/protocols/dumprestore.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/protocols/dumprestore.h b/include/protocols/dumprestore.h
index 6abf922eb192..0b69e2d9709a 100644
--- a/include/protocols/dumprestore.h
+++ b/include/protocols/dumprestore.h
@@ -97,7 +97,8 @@ union u_spcl {
int64_t c_birthtime; /* creation time, seconds */
int64_t c_atime; /* last access time, seconds */
int64_t c_mtime; /* last modified time, seconds */
- int32_t c_spare4[7]; /* old block pointers */
+ int32_t c_extsize; /* external attribute size */
+ int32_t c_spare4[6]; /* old block pointers */
u_int32_t c_file_flags; /* status flags (chflags) */
int32_t c_spare5[2]; /* old blocks, generation number */
u_int32_t c_uid; /* file owner */