From fa36a299ac2c41ee8ae588829fe7eeba08904629 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Sat, 13 Dec 2014 23:55:29 -0600 Subject: [PATCH] update_image.c: Add file comment --- src/update_image.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/update_image.c b/src/update_image.c index bb1b6047..facdfff2 100644 --- a/src/update_image.c +++ b/src/update_image.c @@ -1,5 +1,5 @@ /* - * update_image.c - Update a WIM image. + * update_image.c - see description below */ /* @@ -19,6 +19,32 @@ * along with this file; if not, see http://www.gnu.org/licenses/. */ +/* + * This file contains the implementation of wimlib_update_image(), which is one + * of the two ways by which library users can make changes to a WIM image. (The + * other way is by mounting an image read-write.) wimlib_update_image() is also + * used in the implementation of wimlib_add_image(), since "create a WIM image + * from this directory tree" is equivalent to "create an empty WIM image, then + * update it to add this directory tree as the root". + * + * wimlib_update_image() processes a list of commands passed to it. Currently, + * the following types of commands are supported: + * + * - Add a directory tree from an external source (filesystem or NTFS volume). + * This can be used to add new files or to replace existing files. + * - Delete a file or directory tree. + * - Rename a file or directory tree. + * + * Not supported are creating links to existing files or changing metadata of + * existing files. + * + * wimlib_update_image() is atomic. If it cannot complete successfully, then + * all changes are rolled back and the WIMStruct is left unchanged. Rollback is + * implemented by breaking the commands into primitive operations such as "link + * this dentry tree here" which can be undone by doing the opposite operations + * in reverse order. + */ + #ifdef HAVE_CONFIG_H # include "config.h" #endif -- 2.43.0