2006-06-21  Alfred M. Szmidt  <ams@gnu.org>

	* lib.c (for_each_subdir): Revert previous change.  Reported by
	Aanjhan Ranganathan <aanjhan@tuxmaniac.com>.

2006-04-13  Ben Asselstine  <benasselstine@gmail.com>

	* 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  <benasselstine@gmail.com>

	* 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  <glguida@gmail.com>

	* 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  <glguida@gmail.com>

	* 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  <glguida@gmail.com>

	* 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  <glguida@gmail.com>

	* 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  <glguida@gmail.com>

	* 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  <glguida@gmail.com>

	* 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  <glguida@gmail.com>

	* stow.c (stow_diradd): Handle --stow argument with missing / 
	correctly.

2005-01-31  Gianluca Guida  <glguida@gmail.com>

	* 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 <fcntl.h>.
	(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  <jeroen@dekkers.cx>

	* Makefile: Rewrite.

	* netfs.c (netfs_attempt_create_file): Unlock DIR.
	(netfs_attempt_mkfile): Likewise.

2002-12-09  Moritz Schulte  <moritz@duesseldorf.ccc.de>

	* 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  <moritz@duesseldorf.ccc.de>

	* BUGS: Remove the memory-leak bug.
	* lib.c: Include <sys/mman.h>.
	* node.c: Include <sys/mman.h>.
	(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.