diff options
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 388 |
1 files changed, 388 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 000000000..d0d7f4dae --- /dev/null +++ b/ChangeLog @@ -0,0 +1,388 @@ +2002-12-04 + + * tarlist.c (tar_put_item): Fixed a bug in placing "foo/bar". + * tar.c (tar_make_header): Add a trailing '/' to the name if it's + a directory. + * fs.c (fs_make_node): Duplicate NAME. + (fs_unlink_node): Don't free () anything. + (fs_free_node): New function. + (_make_node): Always set st_fstype to FSTYPE_TAR. + * tarfs.c (tarfs_unlink_node): Free NODE only once it has been + successfully unlinked. + * netfs.c (netfs_S_file_syncfs): New stub that doesn't lock + the node passed by the user. + +2002-12-03 + + * tarfs.c (tarfs_add_header): In case of "inconsistent tar archive", + call tarfs_create_node () to create the missing node. + * netfs.c (fs_unlink_node): Lock netfs_node_refcnt_lock before + accessing node->references. + (fs_unlink_node): Don't call netfs_nput (). + +2002-11-26 + + * tarfs.c (tarfs_sync_fs::tar_write): Check whether we need to + call open_store () before actually calling store_write (). + * netfs.c (netfs_attempt_mkdir): Don't lock & ref the newly created + directory; don't unlock DIR. + * cache.c (__cache_set_size): New function. + (__cache_synced): New function. + (cache_cache): Call __cache_set_size () if necessary. + (cache_write): Use __cache_set_size () and __cache_synced (). + +2002-11-19 + + * tarfs.c (tarfs_set_options): Initialize err. + * fs.c (fs_make_node): Return EEXIST if the node already exists. + (_make_node): Check whether M denotes a directory. + * netfs.c (netfs_attempt_chmod): Fixed typo. + (netfs_attempt_lookup): Lock node on success. + +2002-11-13 + + * fs.c (fs_link_node, fs_link_node_path): Update nn_translated so + that lookups of symlink gets redirected to their target + (ie. "cat link" shows link's target contents, *not* link's target + path). + * zipstores.c (ZIP (open)): Do not read gzip header if the file + is empty. + (ZIP (stream_read)): Do nothing if the file is empty. + (ZIP (read)): Initialize err to 0. + * store-gzip.c (gzip_write_header): New function. + * cache.c (cache_read): Before accessing blocks[block], make sure + BLOCK is not larger that BLOCKS_SIZE. + * zipstore.c (ZIP (read)): Likewise. + * tarfs.c (tarfs_init): Don't forget to call cache_init (). + +2002-11-09 + + * tarfs.c (tarfs_set_options): Close and reopen file when mode + has changed. + * cache.c (fetch_block): Use "orig_size" instead of the current node + size when calculating the amount of data to be read. + * zipstores.c (fetch_block): Likewise. + * cache.c (cache_write): Don't fetch_block() if beyond last available + block on disk. + (cache_set_size): Check whether SIZE is 0. + (cache_write): Fixed the computation of WRITE. + * zipstores.c (ZIP (write)): Likewise. + +2002-11-06 + + * cache.c (cache_set_size): Don't allocate blocks here. + (alloc_block): New function. + (cache_init): New function. + * tarfs.c (read_from_file): New function. + (__tar_file_lock): New variable used throughout the thing. + * netfs.c (netfs_S_io_map): New function. + +2002-11-05 + + * netfs.c (netfs_attempt_chmod): Don't remove the FMT bits. + * fs.c (fs_make_node): Make sure the FMT bits are set. + +2002-11-04 + + * tarfs.c (tarfs_create_node): Call cache_create (). + * cache.c (cache_write): Call cache_set_size () if the node has been + synced. + (cache_write): Allocate new blocks here. + +2002-10-24 + + * zipstores.c (ZIP (set_size)): Do not allocate new blocks here. + (ZIP (write)): Allocate new blocks here. + (struct ZIP (object)): zip_orig_blocks_size: New field. + (ZIP (traverse)): Renamed to "traverse". + * fs.c (_find_node): Look for '.' and '..'. + * tarfs.c (tarfs_add_header): Complain if a node already exists. + * cache.c: Changed cache_read/cache_write prototypes to make them + similar to those of store_read/store_write. + +2002-10-22 + + * fs.c (fs_dir_first_entry, fs_dir_next_entry): New functions. + * tarlist.c: New file. + * tarfs.c: Moved the tar list mgmt functions to tarlist.c. + * tarfs.h: Added tarlist.c prototypes. + * cache.c: Added locks. + +2002-10-21 + + * zipstores.c: Moved gzip-specific code to store-gzip.c (CRC, etc.). + * store-gzip.c (gzip_write_suffix): New function. + * testfs.sh: New file. + +2002-10-20 + + * zipstores.c (struct stream_state): Added a lock. + (struct ZIP (object)): Added a lock for the cache. + (ZIP (set_size)): Also set store->end and store->wrap_src and + runs[0].length. + +2002-10-19 + + * zipstores.c (ZIP (stream_write)): Increment write's file_offs + *only* after having actually written things. + * libstore.diff: Use size_t instead of off_t/store_offset_t for + the NEWSIZE parameter. + +2002-10-17 + + * zipstores.c (enum status): STATUS_IDLE: New value. + (ZIP (stream_*_init)): Close non-idle streams. + (ZIP (sync)): Rewrite file if size has changed. + (struct ZIP (store)): Renamed to ZIP (object). + (struct ZIP (object)): zip_orig_size: New field. + +2002-10-15 + + * zipstores.c (struct stream_state): New structure + (struct ZIP (store)): Added the `read' and `write' fields. + (stream_read): Killed a bug (assignment of *len). + (store_simple_write): New function. + +2002-10-13 + + * zipstores.c: Implemented a copy-on-write page cache, mostly copied + from cache.c, rather than trying to adapt cache.c and integrate it. + This is mostly because (1) cache.c already make asumptions that we + are reading from nodes and (2) zipstores.c may exist in the future + as a stand-alone file, outside of tarfs. + ZIP (stream_write): New function. + ZIP (sync): New function. + STORE_ZIP (class): Use ZIP (sync) () as a cleanup function. + fetch_block: New function. + * tarfs.c (tarfs_sync_fs): Call store_free () when it's done. + +2002-10-09 + + * tarfs.c (tarfs_set_options): Support for runtime option settings. + * store-gzip.c (gzip_verify_crc): New function. + * zipstores.c (ZIP (stream_read)): Added support for CRC check + (only used by the gzip store). + +2002-10-07 + + * Makefile (DEBUG_ZIP): New flag. + +2002-10-06 + + * zipstores.c: New file. + * zip-stores.h: Renamed to zipstores.h. + * store-gzip.c: Include zipstores.c. + * store-bzip2.c: New file. + +2002-10-04 + + * debug.c: New file. + * tarfs.c (tarfs_parse_opts): 'D': New option. + +2002-10-03 + + * debug.h: New file. + * store-gzip.c: Crashes at EOF. + +2002-10-01 + + * tarfs.c (tar_put_item): New function. + (tarfs_create_node): Moved some code to tar_put_item (). + (tarfs_link_node): Use tar_put_item (). + +2002-09-25 + + * zip-stores.h: New file. + * store-gzip.c: New files. + +2002-09-23 + + * tarfs.c (debug): New macro. + +2002-09-22 + + * tarfs.c: New --create and --volatile options. + +2002-09-17 + + * fs.c (fs_link_node_path): New function. + * fs.c: Include fs.h to make sure that it's consistent. + (fs_unlink_node): *Do* call netfs_nput (). + * backend.h (struct fs_backend): symlink_node, link_node, mkdev_node: + New fields. + * tarfs.c: tarfs_symlink_node, tarfs_mkdev_node, tarfs_link_node: + New functions. + * tarfs.c (tarfs_get_next_entry): Skip anonymous nodes. + (tarfs_skip_entries): Likewise. + (tarfs_set_cd): Likewise. + (tarfs_create_node): Allow anonymous (nameless) nodes. + (tarfs_lookup_node): Likewise. + * fs.c (_find_node): Do nothing for nameless nodes. + +2002-09-16 + + * netfs.c (netfs_attempt_create_file): Lock node and add a ref + to it on success. + * fs.c (fs_unlink_node): Don't call netfs_nput (). + +2002-09-14 + + * Makefile (CFLAGS): Added -D_FILE_OFFSET_BITS=64 so that it can + work well (otherwise, struct dirent are wrong and the first 4 + bytes of filenames would just disappear...) + * tarfs.c (tarfs_sync_fs): Write a zero record at the end so that + tar parsing doesn't get messed up. + tar_write: New subfunction. + +2002-09-13 (Friday!) + + * netfs.c: Moved off_t into loff_t to work with 0.3 interfaces. + * tarfs.c (netfs_server_name): New netfs variable. + (netfs_server_version): Likewise. + * netfs.c: Changed struct stat into io_statbuf_t and + struct statfs into fsys_statfsbuf_t. + * backend.h (change_stat): Likewise. + * tarfs.c (tarfs_change_stat): Likewise. + * netfs.c (_make_node): Likewise + set nn_translated to st_mode. + (fs_hard_link_node): Likewise. + * backend.h (init): Pass an iouser to init. + * main.c (main): Likewise. + +2002-09-09 + + * zio.h, zio-file.c, zio-gzip.c, zio-bzip2.c: New files. + * tarfs.c: Replaced store_* with zio_*. + * tar.c: Likewise. + * cache.c: Likewise. + * tarfs.c (tarfs_sync_fs): Truncate file size if necessary. + * tarfs.c (tarfs_sync_fs): Don't call cache_ahead() if we are + at least one block behind. + +2002-09-07 + + * fsutils.[ch]: Renamed to fs.[ch] (looks better). + * fs.[ch]: New files. + * tarfs_defs.h: Renamed to tarfs.h (also looks better). + * tarfs.h: New file. + * tarfs.h (struct tar_item): Removed field 'header' which is useless. + * fs.c: Set DEBUG_FS to enable fs.c's debugging output. + * tarfs.c (tarfs_get_args): Handle options. + * backend.h (struct netnode): Added the `hardlink' field. + * fs.c (fs_hard_link_node): Use the `hardlink' field of netnode. + * cache.c (cache_read): Likewise. + * tarfs.c (tarfs_write_node): Likewise. + * tarfs.c (tarfs_change_stat): Likewise. + * names.c (uid_to_uname, gid_to_uname): New functions from GNU tar. + * tarfs.c (tarfs_create_node): Return ENAMETOOLONG when relevant. + * fs.c (fs_hard_link_node): Increase TARGET's st_nlink. + * fs.c (fs_unlink_node): Check NODE's st_nlink. + * fs.c: get_path_(from|to)_root renamed to fs_get... + * netfs.c (netfs_attempt_syncfs): Only call go_away () which in turn + should call sync_fs (). + * fs.c (fs_unlink_node): Call netfs_nput (). + +2002-09-05 + + * cache.c (cache_set_size): Fixed typo in the block allocation. + * tarfs.c (cache_ahead): New function. + * tarfs.c (tarfs_create_node): New nodes are inserted in an optimal + way. + * current status: Syncing works when adding a file. :) + +2002-09-04 + + * tar.c (tar_make_header): New function (FIXME: Bad chksum). + * tarfs.c (tarfs_sync_fs): Cache *all* following nodes if necessary. + +2002-09-03 + + * tarfs.c (read_archive): Open it read-write when relevant. + * tarfs.c (tarfs_sync_fs): Ends up in an indefinite loop when + writing contents. + +2002-09-02 + + * tarfs.c (tar_make_item): Args changed. + * cache.c (cache_synced): New function to replace the contents_changed field. + * cache.c (cache_sync): New function. + * tarfs.c (tarfs_sync_fs): Almost complete (never tried ;). + +2002-09-01 + + * tarfs.c (tar_insert_item): Fixed some flaws. + +2002-08-31 + + * fsutils.c (fs_make_node): Fixed typo in newnode->prevp assignment. + * fsutils.c (fs_unlink_node): Returns error_t. + +2002-08-27 + + * cache.c (cache_read): Make sure that node is available on disk + before calling read_from_file (). + * cache.c (cache_write): Likewise. + +2002-08-26 + + * cache.c (cache_set_size): New function. + * fsutils.c (fs_unlink_node): New function. + +2002-08-24 + + * cache.c (cache_write): Writing to a file with copy-on-write works. + * fsutils.c (_make_node): Set st_blocksize to 1024, better than 1. + * fsutils.c: A bit more GNU Coding Std compliant. ;) + * backend.h (struct fs_backend): New callbacks. + +2002-08-23 + + * cache.c, cache.h: New files: node's cache management. + * cache.c (cache_read): Reading directly from the file (i.e. + store_read ()) works. + +2002-08-20 + + * netfs.c (OWNERSHIP): New macro to check whether a user owns a node. + * netfs.c (HIDE_FILES_NOT_OWNED): New compilation flag. + * tarfs_defs.h: New data structures to support writing: + struct tar_item, struct status and struct ccache; + struct tarfs_info also changed. + * backend.h (struct fs_backend): New fields to support writing. + * tarfs.c: New functions to manage a linked list of tar items, + new functions to support writing (do nothing so far). + * tar.c: fill_stat_from_header renamed to tar_header2stat. + -> this is an unstable version! + +2002-08-19 + + * netfs.c: Uses EROFS instead of EOPNOTSUPP + (netfs_attempt_create_file): Set *NP to NULL before returning + (netfs_attempt_lookup): When lookup'ing "." and "..", first make + sure that DIR is a directory (thus, it is not possible to cd to + a file). + * tarfs.c (tarfs_init): Retrieve permissions from the tar file and + set them to the root node. + * version.h: File removed since tarfs is not part of the Hurd tree... + +2002-08-12 + + * tarfs.c (tarfs_add_header): changed so that it can handle hard links + * fsutils.c (fs_hard_link_node): new function + * fsutils.c (fs_find_node_path): new function + * fsutils.c (fs_make_node_path): uses above-mentioned function + * tarfs.c: susbstituted error () to fprintf () + * tarfs.c (tarfs_new_dirent): renamed to _new_dirent () + * tarfs.c (_new_dirent): replaced vm_allocate () by mmap () + +2002-08-03 + + * tar.c (skip_n_records): removed useless calls to get_next_record() + * tarfs.c (tarfs_get_args): appends filename to the arglist + +2002-08-02 Ludovic Courtès <ludo@type-z.org> + + * tarfs.c: set st_fstype to FSTYPE_TAR + * tarfs.c: tarfs_add_header (): creates nodes even if one of its subdir + does not exist in the current tree (eg.: creates "/foo/bar" even + if "/foo" does not exist, just create "/foo" before) + * Makefile: added an install rule :) |