diff options
author | mckusick <mckusick@FreeBSD.org> | 2007-02-26 08:15:56 +0000 |
---|---|---|
committer | mckusick <mckusick@FreeBSD.org> | 2007-02-26 08:15:56 +0000 |
commit | 01ee9020b350e550aa823f81efbe79cba3e5cb58 (patch) | |
tree | 2804c9d36c181a4e54a05d8bca1ea7ca7d284525 /include | |
parent | 22aa654f0bcb07fd20f8c8543209224495888a8e (diff) | |
download | FreeBSD-src-01ee9020b350e550aa823f81efbe79cba3e5cb58.zip FreeBSD-src-01ee9020b350e550aa823f81efbe79cba3e5cb58.tar.gz |
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
Diffstat (limited to 'include')
-rw-r--r-- | include/protocols/dumprestore.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/protocols/dumprestore.h b/include/protocols/dumprestore.h index 6abf922..0b69e2d 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 */ |