]> wimlib.net Git - wimlib/commit
unix_apply.c: separate creation, data extraction, and metadata passes
authorEric Biggers <ebiggers3@gmail.com>
Mon, 26 Dec 2016 21:14:41 +0000 (15:14 -0600)
committerEric Biggers <ebiggers3@gmail.com>
Tue, 27 Dec 2016 03:15:13 +0000 (21:15 -0600)
commit886dfa1a6988ac0b227b31fc1d97a4ce817b2352
tree4963f66b87e0d2f0b977ff91f49967eadf9764e3
parentfc15ba2f7e8c0883387f38fc00305ea3a816ef49
unix_apply.c: separate creation, data extraction, and metadata passes

This will be needed to support applying extended attributes.  To make
the xattr support more scalable, each file's xattrs will be stored in a
dedicated stream rather than directly in the metadata resource.
Therefore, a file's xattrs might come up for extraction before the
file's contents; so we must create the files first.  We also can't apply
metadata, e.g.  the file mode, before setting xattrs, since the file
mode might indicate the file is readonly, which prevents setting xattrs.
So we must apply metadata last.

Symlinks with xattrs will have to be treated specially as they cannot be
created first.
include/wimlib.h
src/unix_apply.c