2006-06-21 Alfred M. Szmidt * lib.c (for_each_subdir): Revert previous change. Reported by Aanjhan Ranganathan . 2006-04-13 Ben Asselstine * options.c (argp_parse_common_options) (argp_parse_startup_options, parsing_startup_options_finished) (argp_common_options, argp_startup_options) (argp_parser_common_options, argp_parser_startup_options) (argp_children_runtime): Make these static. * ulfs.c (ulfs_create, ulfs_destroy, ulfs_install) (ulfs_uninstall, ulfs_get_path): Likewise. * ulfs.h (ulfs_get_path): Remove declaration. * lib.c (for_each_subdir): Remove unused variables. 2005-06-27 Ben Asselstine * ulfs.c (ulfs_install): Rewrote to allow insertions of filesystems based on priority. (ulfs_register): Added new argument 'priority'. Set the priority value in ulfs structure. * ulfs.h (ulfs): Added 'priority' field to struct. Updated ulfs_register declaration. * netfs.c (netfs_append_args): Appending new priority option. * stow.c (stow_privdata): Added 'priority' field to struct. (stow_diradd): Added new 'priority' argument. Fill priority field of 'mypriv'. (_stow_scanstowentry): Changed caller to ulfs_register. (_stow_registermatchingdirs): Likewise. * options.c (arg_common_options): Added entries for OPT_PRIORITY and OPT_ADD. (arg_parse_common_options): Handle OPT_PRIORITY and OPT_ADD case. Renamed 'ulfs_removed' to 'ulfs_mode'. New variable 'ulfs_priority'. Changed caller to 'stow_diradd'. Changed caller to 'ulfs_register'. * options.h (OPT_ADD, OPT_PRIORITY, OPT_LONG_ADD) (OPT_LONG_PRIORITY, ULFS_MODE_ADD, ULFS_MODE_REMOVE): New declarations. 2005-06-13 Gianluca Guida * main.c (main): Set properly netfs_root_node permissions when underlying node is not a file Reported by Alfred M. Szmidt. 2005-05-31 Gianluca Guida * node.c (node_unlink_file): Use lookup to figure out whether a file exists or not, or it will fail on read-only filesystems. Reported by Ben Asselstine. 2005-05-30 Gianluca Guida * AUTHORS: Added myself in the list. * README: Added sections "Introduction" and "Stowing Feature". * options.c (argp_program_bug_address): Changed address. * lib.c (for_each_subdir): When call to stat() fails free "name" and continue the loop, instead of returning error. Return 0 at the end of the loop. (for_each_subdir_priv): Likewise. * stow.c (_stow_registermatchingdirs): Don't return error when patternlist_match returns false. Free filepath before returning error when ulfs_register fails. * ulfs.c (ulfs_register): Removed bogus fprintf. 2005-05-29 Gianluca Guida * Makefile: Added support for building mig stubs for stow feature. (OBJS): Added update.o (unionfs): Added fs_notifyServer.o to final linking. (unionfs.static): Likewise. (fs_notifyServer.o): New rule. (clean): Remove fs_notifyServer.c and fs_notify_S.h when cleaning. * netfs.c (OFFSET_T): New macro. (_get_node_size): New function. (netfs_validate_stat): Call _get_node_size for root node. * node.c (node_unlink_file): New variable "removed". Return ENOENT if no files unlinked. * ulfs.c: Include "unionfs", fcntl.h and "lib.h". (ulfs_install, ulfs_uninstall): Rewritten. (ulfs_for_each_under_priv, ulfs_check): New function. (ulfs_register): Check that argument is a directory. * ulfs.h: Removed field "prevp" from struct ulfs. (ulfs_check): New declaration. (ulfs_iterate, ulfs_iterate_unlocked): Don't use ulfs_chain_end. * lib.c (check_dir): New function. * lib.h: Added declaration of check_dir. * stow.c: Include "update.h", cthreads.h, hurd/port.h, "stow-priv.h" and "ncache.h". (stow_privdata) Added "lock" to struct. Removed "remove" to struct. (_stow_registermatchingdirs): Removed call to debug_msg_send. Removed call to ulfs_unregister when privdata->remove is set. Return error on ulfs_register failure instead of exiting the program. (_stow_scanstowentry): Removed call to ulfs_unregister when privdata->remove is set. Lock privdata->lock and unlock at end. (stow_port_bucket, stow_port_class): New variables. (_stow_notify_init, begin_using_notify_ports) (end_using_notify_ports, stow_S_file_changed, stow_S_dir_changed) (_stow_notify_thread, stow_init): New functions. (stow_diradd): Allocate "mypriv" instead of using stack. Call _stow_notify_init. * stow.h: Include "pattern.h". Declare stow_init. * stow-priv.h: New file. * stow-mutations.h: Likewise. * update.c: Likewise. * update.h: Likewise. * options.c: Include "update.h". (argp_parse_common_options): Check stow_diradd return. Call root_update_schedule instead of node_init_root and ncache_reset when parsing_startup_options_finished is set. * main.c: Include "stow.h". Include "update.h". (main): Call stow_init. Call root_update_init. 2005-05-25 Gianluca Guida * CAVEAT: New file. * README: Rewritten. * netfs.c (netfs_attempt_unlink): Use fshelp_checkdirmod instead of fshelp_access. (netfs_attempt_mkdir): Implemented. (netfs_attempt_rmdir): Likewise. (netfs_attempt_create_file_reduced): Likewise. Fixed typo in a comment. * node.c (node_dir_remove): New function. (node_dir_create): Likewise. * node.h (node_dir_create): New declaration. (node_dir_remove): Likewise. * lib.c (for_each_file_priv): Removed unused variables "name" and "filestat". 2005-05-24 Gianluca Guida * netfs.c (netfs_attempt_unlink): Implemented. (netfs_attempt_create_file_reduced): New function. (netfs_S_dir_lookup): Initialized variable "error". Added support for file creation. (netfs_attempt_lookup_improved): Changed instruction flow, return on error not continue on non-error. Check user permission to open file before returning port. * node.c (node_create, node_update, node_lookup_file, node_ulfs_free) (node_ulfs_init, node_entries_get, node_create_root, node_init_root): Changed instruction flow, return on error not continue on non-error. (node_unlink_file): New function. * node.h (node_unlink_file): New declaration. (node_ulfs_iterate_reverse_unlocked): New macro. * options.c (argp_parse_common_options): Removed debugging fprintf. 2005-01-31 Gianluca Guida * stow.c (stow_diradd): Handle --stow argument with missing / correctly. 2005-01-31 Gianluca Guida * pattern.c: New file. * stow.c: Likewise. * pattern.h: Likewise. * stow.h: Likewise. * Makefile (OBJS): Added pattern.o and stow.o * node.c: Initialize variable err. * lib.c (file_lookup): Initialize variable err. Include . (make_filepath, for_each_subdir, for_each_subdir_priv) (for_each_file_priv): New function. * lib.h (make_filepath, for_each_subdir, for_each_subdir_priv): New declaration. * options.c: Include "pattern.h". Include "stow.h". (arg_common_options): Added entries for OPT_STOW and OPT_PATTERN. (argp_parse_common_options): Handle OPT_STOW and OPT_PATTERN case. * options.h (OPT_PATTERN, OPT_STOW, OPT_LONG_PATTERN, OPT_LONG_STOW): New declarations. 2003-07-05 Jeroen Dekkers * Makefile: Rewrite. * netfs.c (netfs_attempt_create_file): Unlock DIR. (netfs_attempt_mkfile): Likewise. 2002-12-09 Moritz Schulte * lib.h: Fix pointer arg. * lib.c (dir_entries_get): Likewise. * lib.c (dir_entries_get): Fix typo. (dir_entries_get): Change type of data_size to size_t. * node.c (node_entries_get): Change type of dirent_data_size to size_t. 2002-12-08 Moritz Schulte * BUGS: Remove the memory-leak bug. * lib.c: Include . * node.c: Include . (node_entries_get): munmap dirent_data as returned by dir_entries_get. (node_entries_get): New variable: int dirent_data_size. * lib.c (dir_entries_get): New argument: int *dirent_data_size. (dir_entries_get): Do not forget to munmap DATA if something goes wrong. * lib.h: Update dir_entries_get declaration. * node.c (node_create_root): call lnode_destroy, if node_create failed, not if lnode_create failed. Reported by Richard Smith. Copyright 2002, 2003, 2005 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved.