]> wimlib.net Git - wimlib/blobdiff - src/mount_image.c
win32_apply.c: fix extraction of empty reparse points
[wimlib] / src / mount_image.c
index eeacf94d138864ab9c0bae8975d1ff0e475302a3..aaad08c3ca2b7a5a16a354fdf22a47150d5773bb 100644 (file)
@@ -511,7 +511,7 @@ create_file(struct fuse_context *fuse_ctx, const char *path,
                }
        }
 
-       hlist_add_head(&inode->i_hlist,
+       hlist_add_head(&inode->i_hlist_node,
                       &wim_get_current_image_metadata(wimfs_ctx->wim)->inode_list);
 
        dentry_add_child(parent, dentry);
@@ -1678,7 +1678,7 @@ wimfs_read(const char *path, char *buf, size_t size,
                        ret = size;
                break;
        case BLOB_IN_STAGING_FILE:
-               ret = raw_pread(&fd->f_staging_fd, buf, size, offset);
+               ret = pread(fd->f_staging_fd.fd, buf, size, offset);
                if (ret < 0)
                        ret = -errno;
                break;
@@ -1712,18 +1712,15 @@ wimfs_readdir(const char *path, void *buf, fuse_fill_dir_t filler,
                return ret;
 
        for_inode_child(child, inode) {
-               char *file_name_mbs;
-               size_t file_name_mbs_nbytes;
+               char *name;
+               size_t name_nbytes;
 
-               ret = utf16le_to_tstr(child->file_name,
-                                     child->file_name_nbytes,
-                                     &file_name_mbs,
-                                     &file_name_mbs_nbytes);
-               if (ret)
+               if (utf16le_to_tstr(child->d_name, child->d_name_nbytes,
+                                   &name, &name_nbytes))
                        return -errno;
 
-               ret = filler(buf, file_name_mbs, NULL, 0);
-               FREE(file_name_mbs);
+               ret = filler(buf, name, NULL, 0);
+               FREE(name);
                if (ret)
                        return ret;
        }
@@ -2037,7 +2034,7 @@ wimfs_write(const char *path, const char *buf, size_t size,
        struct wimfs_fd *fd = WIMFS_FD(fi);
        ssize_t ret;
 
-       ret = raw_pwrite(&fd->f_staging_fd, buf, size, offset);
+       ret = pwrite(fd->f_staging_fd.fd, buf, size, offset);
        if (ret < 0)
                return -errno;