]> wimlib.net Git - wimlib/blobdiff - src/ntfs-apply.c
Fix sequential extraction, and include progress info
[wimlib] / src / ntfs-apply.c
index d6271f79094795d12a4788ee646f8aca0be814a0..32d981082da0a9e0edb4754904fe09f62561f296 100644 (file)
@@ -54,7 +54,7 @@ struct ntfs_apply_args {
        WIMStruct *w;
 };
 
-/* 
+/*
  * Extracts a WIM resource to a NTFS attribute.
  */
 static int
@@ -72,7 +72,7 @@ extract_wim_resource_to_ntfs_attr(const struct lookup_table_entry *lte,
 
        while (bytes_remaining) {
                u64 to_read = min(bytes_remaining, WIM_CHUNK_SIZE);
-               ret = read_wim_resource(lte, buf, to_read, offset, false);
+               ret = read_wim_resource(lte, buf, to_read, offset, 0);
                if (ret != 0)
                        break;
                sha1_update(&ctx, buf, to_read);
@@ -260,17 +260,17 @@ apply_file_attributes_and_security_data(ntfs_inode *ni,
        if (dentry->d_inode->security_id != -1) {
                const struct wim_security_data *sd;
                const char *descriptor;
-               
+
                sd = wim_const_security_data(w);
                wimlib_assert(dentry->d_inode->security_id < sd->num_entries);
-               descriptor = sd->descriptors[dentry->d_inode->security_id];
+               descriptor = (const char *)sd->descriptors[dentry->d_inode->security_id];
                DEBUG("Applying security descriptor %d to `%s'",
                      dentry->d_inode->security_id, dentry->full_path_utf8);
 
                ret = ntfs_xattr_system_setxattr(&ctx, XATTR_NTFS_ACL,
                                                 ni, dir_ni, descriptor,
                                                 sd->sizes[dentry->d_inode->security_id], 0);
-                               
+
                if (ret != 0) {
                        ERROR_WITH_ERRNO("Failed to set security data on `%s'",
                                        dentry->full_path_utf8);
@@ -299,7 +299,7 @@ static int apply_reparse_data(ntfs_inode *ni, const struct dentry *dentry,
        }
 
        if (wim_resource_size(lte) >= 0xffff) {
-               ERROR("Reparse data of `%s' is too long (%lu bytes)",
+               ERROR("Reparse data of `%s' is too long (%"PRIu64" bytes)",
                      dentry->full_path_utf8, wim_resource_size(lte));
                return WIMLIB_ERR_INVALID_DENTRY;
        }
@@ -310,7 +310,7 @@ static int apply_reparse_data(ntfs_inode *ni, const struct dentry *dentry,
        p = put_u16(p, wim_resource_size(lte)); /* ReparseDataLength */
        p = put_u16(p, 0); /* Reserved */
 
-       ret = read_full_wim_resource(lte, p);
+       ret = read_full_wim_resource(lte, p, 0);
        if (ret != 0)
                return ret;
 
@@ -327,7 +327,7 @@ static int apply_reparse_data(ntfs_inode *ni, const struct dentry *dentry,
 static int do_wim_apply_dentry_ntfs(struct dentry *dentry, ntfs_inode *dir_ni,
                                    WIMStruct *w);
 
-/* 
+/*
  * If @dentry is part of a hard link group, search for hard-linked dentries in
  * the same directory that have a nonempty DOS (short) filename.  There should
  * be exactly 0 or 1 such dentries.  If there is 1, extract that dentry first,
@@ -390,7 +390,7 @@ static int preapply_dentry_with_dos_name(struct dentry *dentry,
        return 0;
 }
 
-/* 
+/*
  * Applies a WIM dentry to a NTFS filesystem.
  *
  * @dentry:  The WIM dentry to apply
@@ -413,8 +413,6 @@ static int do_wim_apply_dentry_ntfs(struct dentry *dentry, ntfs_inode *dir_ni,
        if (inode->attributes & FILE_ATTRIBUTE_DIRECTORY) {
                type = S_IFDIR;
        } else {
-               struct dentry *other;
-
                /* Apply hard-linked directory in same directory with DOS name
                 * (if there is one) before this dentry */
                if (dentry->short_name_len == 0) {
@@ -449,7 +447,7 @@ static int do_wim_apply_dentry_ntfs(struct dentry *dentry, ntfs_inode *dir_ni,
                }
        }
 
-       /* 
+       /*
         * Create a directory or file.
         *
         * Note: For symbolic links that are not directory junctions, pass
@@ -689,7 +687,7 @@ static int do_wim_apply_image_ntfs(WIMStruct *w, const char *device, int extract
        int ret;
        struct dentry *root;
        struct ntfs_apply_args args;
-       
+
        DEBUG("Mounting NTFS volume `%s'", device);
        vol = ntfs_mount(device, 0);
        if (!vol) {
@@ -729,7 +727,7 @@ out:
 }
 
 
-/* 
+/*
  * API entry point for applying a WIM image to a NTFS volume.
  *
  * Please note that this is a NTFS *volume* and not a directory.  The intention
@@ -774,7 +772,7 @@ WIMLIBAPI int wimlib_apply_image_to_ntfs_volume(WIMStruct *w, int image,
                w->lookup_table = joined_tab;
        }
 
-       ret = wimlib_select_image(w, image);
+       ret = select_wim_image(w, image);
        if (ret != 0)
                goto out;