diff options
Diffstat (limited to 'README')
-rw-r--r-- | README | 42 |
1 files changed, 42 insertions, 0 deletions
@@ -2,3 +2,45 @@ metastore stores or restores metadata (owner, group, permissions, xattrs and optionally mtime) for a filesystem tree. See the manpage (metastore.1) for more details. + +The file format of the .metastore files is as follows: + +Data types +---------- + +CSTRING = NULL-terminated binary string + +BSTRING(N) = binary string of length N + +INT(N) = N byte integer in big endian byte order + + +File format +----------- +HEADER +N * ENTRY + + +HEADER format +------------- +BSTRING(10) - Magic header - "MeTaSt00r3" +BSTRING(8) - Version - "\0\0\0\0\0\0\0\0" (currently) + + +ENTRY format +------------ +CSTRING - Path (absolute or relative) +CSTRING - Owner (owner name, not uid) +CSTRING - Group (group name, not gid) + +INT(8) - Mtime (seconds) +INT(8) - Mtime (nanoseconds) +INT(2) - Mode (st_mode from struct stat st_mode AND 0177777, + i.e. unix permissions and type of file) + +INT(4) - num_xattrs +FOR (i = 0; i < num_xattrs; i++) { + CSTRING - xattr name + INT(4) - xattrlen + BSTRING(xattrlen) - xattr value +} |