Eric Biggers [Sun, 20 Jan 2013 18:23:29 +0000 (12:23 -0600)]
lzx_record_match(): Remove dead assignments to formatted_offset
Eric Biggers [Sun, 20 Jan 2013 18:22:59 +0000 (12:22 -0600)]
Update iconv.m4
Eric Biggers [Thu, 10 Jan 2013 04:43:31 +0000 (22:43 -0600)]
wimlib.h: Fix typos
Eric Biggers [Tue, 1 Jan 2013 06:52:53 +0000 (00:52 -0600)]
wimlib_add_image() doxygen docs
Eric Biggers [Tue, 1 Jan 2013 06:42:01 +0000 (00:42 -0600)]
rebuild_wim(): Fix use of freed memory
update_lte_of_staging_file() can result in the freeing of the lookup table
entry, so the staging list should be traversed with list_for_each_entry_safe()
rather than list_for_each_entry().
Eric Biggers [Tue, 1 Jan 2013 06:16:31 +0000 (00:16 -0600)]
imagex-export.1.in: Fix --check docs
Eric Biggers [Tue, 1 Jan 2013 06:12:07 +0000 (00:12 -0600)]
Fix memcpy()s with overlapping buffers
Eric Biggers [Tue, 1 Jan 2013 06:07:12 +0000 (00:07 -0600)]
imagex_export(): Fix memory leak on error path
Eric Biggers [Tue, 1 Jan 2013 05:58:03 +0000 (23:58 -0600)]
wimfs_link(): Tweak error codes
Eric Biggers [Tue, 1 Jan 2013 05:48:15 +0000 (23:48 -0600)]
wimfs_rename(): Use path_basename(to)
(Was broken several ocmmits ago.)
Eric Biggers [Tue, 1 Jan 2013 00:26:39 +0000 (18:26 -0600)]
test-imagex-mount: Mount synchronously
Eric Biggers [Tue, 1 Jan 2013 00:10:50 +0000 (18:10 -0600)]
bitstream_read_bits(): Remove bogus assertion
Eric Biggers [Tue, 1 Jan 2013 00:04:44 +0000 (18:04 -0600)]
Fix format specifiers in some debugging statements
Eric Biggers [Mon, 31 Dec 2012 23:57:27 +0000 (17:57 -0600)]
Comment lines that may produce compiler warnings
Eric Biggers [Mon, 31 Dec 2012 23:40:14 +0000 (17:40 -0600)]
More code cleanups
- Rename 'struct ads_entry' to 'struct wim_ads_entry'
- Fix/improve more comments
Eric Biggers [Mon, 31 Dec 2012 22:46:55 +0000 (16:46 -0600)]
Rename image_metadata to wim_image_metadata
Eric Biggers [Mon, 31 Dec 2012 22:42:44 +0000 (16:42 -0600)]
imagex-optimize.1.in: Note compression ratio
Eric Biggers [Mon, 31 Dec 2012 21:17:46 +0000 (15:17 -0600)]
Update version to 1.2.3
Eric Biggers [Mon, 31 Dec 2012 20:07:11 +0000 (14:07 -0600)]
Various code cleanups
* Improve comments
* Prefix all inode fields with i_
* Rename dentry->inode_dentry_list to d_alias
* Rename inode->dentry_list to i_dentry
* Rename 'struct inode' to 'struct wim_inode'
* Rename 'struct dentry' to 'struct wim_dentry'
* Rename 'struct lookup_table_entry' to 'struct wim_lookup_table_entry'
* Rename 'struct lookup_table' to 'struct wim_lookup_table'
* Rename 'struct wimlib_fd' to 'struct wimfs_fd'
* Remove seemingly unneeded hack from get_symlink_name()
* Fix wrong pointer free in get_names()
* Fix memory leaks in error cases of wimfs_rename()
* Remove unneeded open_flags parameter to create_staging_file()
* Specify O_EXCL instead of O_TRUNC in create_staging_file()
* Don't check SHA1 message digest when extracting only part of a stream (this
bug previously caused truncate() with length > 0 but less than the stream
length to fail).
* Fix format string in lzx_decompress()
* In mounted WIM, return -ENOTDIR when component of path prefix is not a
directory (rather than -ENOENT as was the case in most places).
Eric Biggers [Tue, 25 Dec 2012 01:02:08 +0000 (19:02 -0600)]
README updates
Eric Biggers [Tue, 25 Dec 2012 00:09:30 +0000 (18:09 -0600)]
README: fix typo
Eric Biggers [Tue, 25 Dec 2012 00:03:57 +0000 (18:03 -0600)]
imagex-optimize man page: fix wording
Eric Biggers [Fri, 21 Dec 2012 18:52:14 +0000 (12:52 -0600)]
make_huffman_decode_table(): Fix comment
Eric Biggers [Fri, 21 Dec 2012 18:42:56 +0000 (12:42 -0600)]
Version 1.2.2
Eric Biggers [Fri, 21 Dec 2012 18:38:37 +0000 (12:38 -0600)]
Add make-release script
Eric Biggers [Fri, 21 Dec 2012 17:58:47 +0000 (11:58 -0600)]
fix_true_inode(): Fix bug
Eric Biggers [Fri, 21 Dec 2012 04:34:35 +0000 (22:34 -0600)]
make_huffman_decode_table(): entries_per_long
Eric Biggers [Fri, 21 Dec 2012 04:28:35 +0000 (22:28 -0600)]
Update NEWS
Eric Biggers [Fri, 21 Dec 2012 04:22:32 +0000 (22:22 -0600)]
Use only 16 bits for symbol frequencies
Eric Biggers [Fri, 21 Dec 2012 04:17:25 +0000 (22:17 -0600)]
xpress_decode_match(): Fix signs in format strings
Eric Biggers [Fri, 21 Dec 2012 04:16:27 +0000 (22:16 -0600)]
xpress_decode_match(): Allow lengths encoded in unnecessary bytes
Eric Biggers [Fri, 21 Dec 2012 04:14:42 +0000 (22:14 -0600)]
Fix up return values
Eric Biggers [Fri, 21 Dec 2012 03:59:27 +0000 (21:59 -0600)]
LZX decompression cleanups
- Improve comments
- Get rid of bitstream_read_bytes() because it wasn't clear what it was supposed
to do. Just inline what needs to be done in the appropriate places.
- Only undo the call instruction preprocessing if 0xe8 bytes may be in the input
data.
Eric Biggers [Thu, 20 Dec 2012 23:26:00 +0000 (17:26 -0600)]
Rewrite make_huffman_decode_table()
Eric Biggers [Thu, 20 Dec 2012 18:05:42 +0000 (12:05 -0600)]
Decompression optimizations
Eric Biggers [Thu, 20 Dec 2012 03:30:23 +0000 (21:30 -0600)]
make_canonical_huffman_code(): Tiny optimization
Eric Biggers [Thu, 20 Dec 2012 02:51:32 +0000 (20:51 -0600)]
Replaced all "uint" with "unsigned"
Eric Biggers [Thu, 20 Dec 2012 02:18:20 +0000 (20:18 -0600)]
Minor fixes in wimlib.h docs
Eric Biggers [Thu, 20 Dec 2012 00:44:33 +0000 (18:44 -0600)]
Version 1.2.1
Eric Biggers [Wed, 19 Dec 2012 23:35:40 +0000 (17:35 -0600)]
ntfs-apply: More cleanups
- Add and fix comments
- Fix memory leak in an error path
Eric Biggers [Wed, 19 Dec 2012 23:35:24 +0000 (17:35 -0600)]
struct dentry, struct inode: remone unused flags
Eric Biggers [Wed, 19 Dec 2012 20:53:43 +0000 (14:53 -0600)]
ntfs-apply.c: Tweak NTFS inode closing some more
Eric Biggers [Wed, 19 Dec 2012 19:42:05 +0000 (13:42 -0600)]
apply_stream_list(): Improve comments
Eric Biggers [Wed, 19 Dec 2012 19:35:44 +0000 (13:35 -0600)]
Refactor some code into maybe_apply_dentry()
Eric Biggers [Wed, 19 Dec 2012 19:22:39 +0000 (13:22 -0600)]
NTFS apply code cleanups
Eric Biggers [Wed, 19 Dec 2012 18:49:41 +0000 (12:49 -0600)]
Tweak progress messages for imagex apply
Eric Biggers [Wed, 19 Dec 2012 18:46:08 +0000 (12:46 -0600)]
write_ntfs_data_streams(): Reserve space for streams
Call ntfs_attr_truncate_solid() with the size of each stream before extracting
it as a NTFS attribute. This should allocate the space (extents, etc.) needed
for the data before actually extracting it.
Eric Biggers [Wed, 19 Dec 2012 16:08:06 +0000 (10:08 -0600)]
do_apply_dentry_ntfs(): Adjust inode closing
Eric Biggers [Wed, 19 Dec 2012 06:07:08 +0000 (00:07 -0600)]
Fix extract progress messages (again)
Eric Biggers [Wed, 19 Dec 2012 05:27:18 +0000 (23:27 -0600)]
build_dentry_tree_ntfs(): Free memory for $Secure
Eric Biggers [Wed, 19 Dec 2012 05:08:20 +0000 (23:08 -0600)]
Ugly hack
After exporting an image, an inode list may be shared between multiple images.
This is a fix to make deleting the inodes from the list still work when the list
head may have been freed already.
Eric Biggers [Wed, 19 Dec 2012 04:40:51 +0000 (22:40 -0600)]
Put lookup_table_entry->extracted_file in union with num_opened_fds
Eric Biggers [Wed, 19 Dec 2012 04:24:52 +0000 (22:24 -0600)]
Fix xpress_compress() minimum size
Eric Biggers [Wed, 19 Dec 2012 04:21:22 +0000 (22:21 -0600)]
lte_overwrite_prepare(): only check offset if in same WIM
Eric Biggers [Wed, 19 Dec 2012 04:11:36 +0000 (22:11 -0600)]
Replace dentry_find_streams_to_write() with inode_find_streams_to_write()
Eric Biggers [Wed, 19 Dec 2012 04:04:16 +0000 (22:04 -0600)]
Rename some functions used in for_image()
Eric Biggers [Wed, 19 Dec 2012 03:58:05 +0000 (21:58 -0600)]
Note that applying from pipe is not allowed
Eric Biggers [Wed, 19 Dec 2012 03:15:40 +0000 (21:15 -0600)]
free_inode(): Fix deletion of inode from list
Eric Biggers [Wed, 19 Dec 2012 02:18:28 +0000 (20:18 -0600)]
Correctly return WIMLIB_ERR_ICONV_NOT_AVAILABLE
Eric Biggers [Wed, 19 Dec 2012 02:09:59 +0000 (20:09 -0600)]
utf8_to_utf16(), utf16_to_utf8() changes
These two functions have been moved out of 'util.c' to a separate file
'encoding.c'. They also now return an integer error code because they can fail
for at least two reasons (no memory, and invalid UTF-8 or UTF-16LE character).
Eric Biggers [Tue, 18 Dec 2012 20:57:04 +0000 (14:57 -0600)]
Use NTFS-3g character conversion functions if available
Make utf16_to_utf8() and utf8_to_utf16() call into libntfs-3g if support is
compiled in.
Eric Biggers [Tue, 18 Dec 2012 20:08:23 +0000 (14:08 -0600)]
Remove rbtree_augmented.h from libwim_la_SOURCES
Eric Biggers [Tue, 18 Dec 2012 18:30:51 +0000 (12:30 -0600)]
Improve execute_fusermount()
- Use waitpid() instead of wait()
- Check exit statuses correctly
Eric Biggers [Tue, 18 Dec 2012 18:08:14 +0000 (12:08 -0600)]
xml.c: Fix sort_by_index()
This has apparently been broken for a long time due to using the wrong pointer
but no problems ever showed up!
Eric Biggers [Tue, 18 Dec 2012 17:58:36 +0000 (11:58 -0600)]
rbtree code: Reorganize and delete some unneeded stuff
Eric Biggers [Tue, 18 Dec 2012 17:57:15 +0000 (11:57 -0600)]
mount_image.c: Get rid of anonymous union
(For compiler compatibility)
Eric Biggers [Tue, 18 Dec 2012 17:55:23 +0000 (11:55 -0600)]
Update version to 1.2.1
Eric Biggers [Tue, 18 Dec 2012 17:22:03 +0000 (11:22 -0600)]
Update NEWS and README
Eric Biggers [Tue, 18 Dec 2012 16:54:43 +0000 (10:54 -0600)]
mount_image.c: Minor cleanups
Eric Biggers [Tue, 18 Dec 2012 16:40:56 +0000 (10:40 -0600)]
Remove is_daemon field in message handler context
Eric Biggers [Tue, 18 Dec 2012 07:01:23 +0000 (01:01 -0600)]
Don't call unmount_progress_func() when no progress msgs requested
Eric Biggers [Tue, 18 Dec 2012 06:51:07 +0000 (00:51 -0600)]
Implement unmount progress callback
Eric Biggers [Tue, 18 Dec 2012 06:28:08 +0000 (00:28 -0600)]
Doc updates and fix daemon polling
Eric Biggers [Tue, 18 Dec 2012 05:56:41 +0000 (23:56 -0600)]
mount_image.c: More message queue changes
Yet another rewrite of the message sending/receiving functions. Everything is
now sent through a generic message loop function with callbacks. At the same
time, another message has been introduced that is sent from the daemon to the
unmount process to provide its pid. Then, the unmount process can detect if the
filesystem daemon has crashed by polling this pid every second. (This should
solve the 10 minute timeout problem.)
Eric Biggers [Tue, 18 Dec 2012 02:21:18 +0000 (20:21 -0600)]
Make in-place overwrite work when non-last image is mounted
Eric Biggers [Tue, 18 Dec 2012 02:03:13 +0000 (20:03 -0600)]
imagex unmount --rebuild
Eric Biggers [Tue, 18 Dec 2012 00:22:00 +0000 (18:22 -0600)]
Allow in-place overwrites when unmounting read-write mounted WIM
- Add WIMLIB_UNMOUNT_FLAG_REBUILD and WIMLIB_UNMOUNT_FLAG_RECOMPRESS
- Make lock_wim() set a flag WIMStruct.wim_locked to prevent double-locks
- Maintain the inode list for each image through a read-write mount (not
strictly necessary yet, but makes sense to keep it correct)
- overwrite_wim_inplace(): Search for new streams by searching directly through
the lookup table for entries that are not located in the WIM being
overwritten.
Eric Biggers [Mon, 17 Dec 2012 23:14:06 +0000 (17:14 -0600)]
Mount: various cleanups and optimizations
Factor out code from wimfs_symlink(), wimfs_mkdir(), and wimfs_mknod() into a
new create_dentry() function.
Allow wimfs_truncate() to truncate to more than the current file size, causing
the file to be extended.
Remove some unneeded functions and assertions.
Eric Biggers [Mon, 17 Dec 2012 05:43:47 +0000 (23:43 -0600)]
Specify hard_remove option to fuse_main() when possible
Eric Biggers [Mon, 17 Dec 2012 05:26:39 +0000 (23:26 -0600)]
mount_image.c: Implement versioned unmount messages
The ad-hoc format of the unmount messages has been expanded with a header that
specifies the message size and the minimum and current version of the library
sending the message. This could potentially make things go smoother if the
messages are changed and unmounts are done with a different library version than
the mount is with.
Also, some code was refactored to reduce function length.
Eric Biggers [Mon, 17 Dec 2012 03:50:12 +0000 (21:50 -0600)]
extract_wim_resource() refactor
Eric Biggers [Mon, 17 Dec 2012 03:29:16 +0000 (21:29 -0600)]
main_writer_thread_proc(): Re-instate removed condition
Eric Biggers [Mon, 17 Dec 2012 03:15:07 +0000 (21:15 -0600)]
Refactoring/rewrites
New function dentry_tree_fix_inodes() to de-duplicate some code in
read_metadata_resource() and wimlib_add_image().
In wimlib_export_image(), search through the inode list when looking for lookup
table entries to export instead of the dentry tree.
In wimlib_mount_image(), search through the inode list when resolving lookup
table entries, and update the inode numbers at the same time.
Eric Biggers [Sun, 16 Dec 2012 19:35:10 +0000 (13:35 -0600)]
Minor cleanups
Eric Biggers [Sun, 16 Dec 2012 19:14:01 +0000 (13:14 -0600)]
build_dentry_tree(): Allow root to be symlink
Eric Biggers [Sun, 16 Dec 2012 19:06:08 +0000 (13:06 -0600)]
Move inode_to_stbuf() to mount_image.c
Eric Biggers [Sun, 16 Dec 2012 19:01:25 +0000 (13:01 -0600)]
metadata_resource.c
Eric Biggers [Sun, 16 Dec 2012 18:57:18 +0000 (12:57 -0600)]
verify.c, buffer_io.h
Eric Biggers [Sun, 16 Dec 2012 18:30:19 +0000 (12:30 -0600)]
Re-organize code
Eric Biggers [Sun, 16 Dec 2012 17:58:19 +0000 (11:58 -0600)]
Stream writing cleanups
Eric Biggers [Sun, 16 Dec 2012 07:46:11 +0000 (01:46 -0600)]
Increment real_refcnt for metadata lte's
Eric Biggers [Sun, 16 Dec 2012 07:44:00 +0000 (01:44 -0600)]
Various fixes and cleanups
Eric Biggers [Sun, 16 Dec 2012 07:42:28 +0000 (01:42 -0600)]
lookup_table.c: minor cleanups
Eric Biggers [Sun, 16 Dec 2012 07:41:32 +0000 (01:41 -0600)]
integrity.c: Minor cleanup
Eric Biggers [Sun, 16 Dec 2012 07:41:00 +0000 (01:41 -0600)]
image_info(): Fix minor bugs
Eric Biggers [Sun, 16 Dec 2012 02:50:30 +0000 (20:50 -0600)]
Various cleanups
- wim_timestamp_to_str() instead of asctime(gmtime(wim_timestamp_to_unix()))
- inode_stream_lte() non-inline to save space
- new errors WIMLIB_ERR_CHAR_CONVERSION and WIMLIB_ERR_INVALID_PART_NUMBER
- write_xml_data(): Have libxml2 write directly to output file with UTF-16LE
encoding (no need for in-memory buffer and converting to UTF-16LE afterwards)
- read_header(): Validate total_parts and part_number
- Fix a couple potential integer overflows
- Fix some indentation and phase out more 'uint' uses
- Remove some unneeded DEBUG() statements
Eric Biggers [Sat, 15 Dec 2012 06:36:24 +0000 (00:36 -0600)]
XPRESS compressor: increase max match
XPRESS_MAX_MATCH was previously incorrectly set to 255, even though it can
really be up to 65538. This was fixed and the code for handling this was fixed,
so the XPRESS compressor can now output longer matches. (The decompressor could
already handle these longer matches.)
Eric Biggers [Sat, 15 Dec 2012 06:36:21 +0000 (00:36 -0600)]
wimlib_internal.h: Some comment improvements
Eric Biggers [Sat, 15 Dec 2012 03:02:19 +0000 (21:02 -0600)]
Compression code cleanups
Eric Biggers [Thu, 13 Dec 2012 06:50:32 +0000 (00:50 -0600)]
Fix wimlib_mount() documentation