Sun Jun  7 19:01:37 1992  Jan-Simon Pendry  (jsp at achilles)

	* Code cut for BSD 4.4 alpha.

Sun May 31 17:28:52 1992  Jan-Simon Pendry  (jsp at achilles)

	* (afs_ops.c) make sure error code is returned to user if there
	is an immediate error in afs_lookuppn.

	* (nfs_ops.c) clear out mountd port number after use.

	* (nfs_ops.c) optionally (KICK_KERNEL) run lstat over the old
	mount point.  This should go somewhere else more appropriate.

Sun Mar 29 16:22:01 1992  Jan-Simon Pendry  (jsp at achilles)

	* (mount_fs.c) FASCIST_DF_COMMAND is now defined as the fstype
	you want df to see.

	* (opts.c) fix buffer overrun in slash munging.

	* (host_ops.c) add support for INFORM_MOUNTD.

Sat Mar  7 10:23:04 1992  Jan-Simon Pendry  (jsp at achilles)

	* (nfsx_ops.c) fix buffer overrun problem by allocating sufficient
	memory.

	* (afs_ops.c) fix dereference of free'ed memory when calling
	assign_error_mntfs.

	* (xutil.c) fix xmalloc and xrealloc to allow zero sized
	allocation.

	* (os-type) make it recognise aix3.2

Sun Feb  9 13:14:54 1992  Jan-Simon Pendry  (jsp at achilles)

	* Release 5.3 Beta

	* hpux 8 support is still missing.

	* (os-bsd44.h) merged in changes for new bsd nfs code.  still need
	to add in lease and kerberos support.

Sun Dec  1 16:20:21 1991  Jan-Simon Pendry  (jsp at achilles)

	* (info_nis.c) changed so that it remembers if the NIS domainname
	is set and doesn't repeatedly complain.  Message changed from an
	Error to a Warning.

	* (sfs_ops.c) added linkx fstype.  linkx is the same as link but
	it also checks that the target exists.  This makes it useful for
	wildcard map entries.

	* (wire.c) applied changes from Dirk Grunwald.  Now stands a
	better chance of correctly determining the network name.

	* (map.c) changes in timeout_mp to cause second and subsequent
	backgrounded unmount attempts to backoff and so reduce the chance
	of running more than one backgrounded unmount at a time.

	* (misc_rpc.c) bug fix from Martyn Johnson to avoid xdr_free'ing
	the wrong piece of memory.  This was causing random core dumps,
	often with a stack trace through pickup_rpc_reply.

Sun Sep 15 21:16:38 1991  Jan-Simon Pendry  (jsp at achilles)

	* Release 5.3 alpha 14.

	* (os-osf1.h) merged in OSF/1 support.

Sun Aug  4 18:25:04 1991  Jan-Simon Pendry  (jsp at achilles)

	* (os-stellix.h) merged in Stellix support.

	* (os-u4_2.h) merged in Ultrix 4.2 support.

	* (host_ops.c) made TCP the default transport protocol.  Define
	HOST_RPC_UDP somewhere to get UDP transport.

	* (many) added support for ${remopts}.  Suggested by Steve
	Heimlich.  remopts is the same as opts, but is used when the
	remote server is not on the local network.  If it is not set it
	defaults to whatever value ${opts} has.

Tue May  7 22:30:00 1991  Jan-Simon Pendry  (jsp at achilles)

	* Checkpoint for Berkeley network tape II.

Sat May  4 22:06:24 1991  Jan-Simon Pendry  (jsp at achilles)

	* New Berkeley Copyright.

	* (mntfs.c) more short-circuiting in realloc_mntfs().

	* (host_ops.c) increase RPC timeout to 20 seconds.

	* (info_hes.c) now supports lookup in other domains.

	* (srvr_nfs.c) call map_flush_srvr whenever a server comes up.

	* (map.c) added hook to flush hung file servers.

	* (wire.c) make loop step more portable.

	* (util.c) fix for compiling on rios.

Sun Apr 21 21:54:52 1991  Jan-Simon Pendry  (jsp at forest)

	* (util.c) ignore EINVAL returned by rmdir().

	* (am_ops.c, afs_ops.c) remove SunOS4 map compat code.

	* (nfsx_ops.c) don't clear MFF_MOUNTING until finished mount attempts.

	* (nfsx_ops.c) don't call sched_task more than once.

	* (afs_ops.c) don't call afs_bgmount if a mount is in progress.

	* (info_file.c) handle case where map ends with \

Fri Apr  5 19:23:50 1991  Jan-Simon Pendry  (jsp at forest)

	* Release 5.3 Alpha 12.

	* (util.c) don't clear MFF_MOUNTING flag if mount is still in progress.

	* (srvr_nfs.c) calls make_nfs_auth() as required.

	* (host_ops.c) calls make_nfs_auth() as required.
	
	* (afs_ops.c) allow foreground mounts to return pending.  This is
	used by nfsx_ops.c.

	* (mapc.c) uses new RE_HDR abstraction coping with systems which
	already have the re package installed.

	* (nfsx_ops.c) automatically generates a suitable sublink to make
	things work.  Remounts now work correctly, but are done in the
	foreground so there is a possibility that things may hang.  This is
	too hard to do differently.

Wed Apr  3 17:49:05 1991  Jan-Simon Pendry  (jsp at achilles)

	* (nfs_ops.c) HAS_NFS_QUALIFIED_NAME is a new compile time switch
	which puts a qualified domain name into the RPC authentication
	instead of using the default value.  Abstracted this out into new
	routine called make_nfs_auth().

	* (afs_ops.c) fixed bug which caused spurious ENOENTs to appear.
	this was caused by some code motion which also got slightly
	altered int the process.  moral: don't make two changes at once.

Sun Mar 17 12:05:27 1991  Jan-Simon Pendry  (jsp at forest)

	* Release 5.3 Alpha 11.

	* (amq.8) Updated.

	* (amq.c) Added new -v option which displays the version number of
	the target Amd.  Also added support to Amd and reworked newvers
	script.  Got rid of rcs_info.c.

	* (mk-amd-map.c) Changed name of remove function to avoid clash
	with ANSI C.

	* (wire.c) Fixed to work with new 4.4BSD sockaddr's.

	* Changed const to Const everywhere and added new define in config.h.

	* (mk-amd-map.c) New -p option which just writes the output to
	stdout.  Useful for making NIS or Hesiod maps.

	* (amdref) Small updates and clarifications.

Sat Mar 16 20:35:17 1991  Jan-Simon Pendry  (jsp at forest)

	* (amq_subr.c) Flush request now flushes all internal caches.

	* (amq_subr.c) Changed xdr_amq_mount_tree to return only the
	required sub-tree.

	* (ifs_ops.c) Added missing return 0; to ifs_mount.

Sat Mar  9 19:31:25 1991  Jan-Simon Pendry  (jsp at forest)

	* (get_args.c) Output the primary network interface information
	with the -v option.

	* (mapc.c) Fixed spurious warning about "root" map not supporting
	cache mode "all".  Added new (unnamed) cache mode MAPC_ROOT.

	* (info_nis.c) Fixed order number testing which was the cause of a
	loop.

Sun Mar  3 17:57:03 1991  Jan-Simon Pendry  (jsp at forest)

	* Release 5.3 Alpha 10.

	* Introduced new inet_dquad routine which prints IP addresses in
	dotted quad format.  The C library routine is not used because it
	uses a static buffer and it takes a structure argument on some
	machines and unsigned longs on others.  This confuses the hell out
	of some compilers and causes SEGVs.

	* task_notify becomes do_task_notify to avoid clash with Mach.

	* (mntfs.c) In realloc_mntfs, the private data field wasn't being
	cleared out when the mntfs object was being re-used.  This meant
	that the data might be used for the wrong mount, so causing
	various obscure errors.

	* (info_file.c) Reworked to provide support for map cache "sync"
	option.

	* (mapc.c) Added new "sync" option to map cache.  This ensures
	that the cached data doesn't become stale wrt the source.
	Currently this isn't implemented for passwd and hesiod maps.

Wed Feb 27 11:38:07 1991  Jan-Simon Pendry  (jsp at forest)

	* (afs_ops.c) Fixed pid put in fs_hostname for toplvl mount.

Sun Feb 24 19:37:55 1991  Jan-Simon Pendry  (jsp at forest)

	* (wire.c) New module which determines the name of the primary
	attached network.  This could be used to determine which
	server to use.

	* (srvr_nfs.c) Changed mount daemon port mapping caching.  This is
	now much more eager to recompute the mapping than before.  Will
	also now work even if pinging is switched off (for example "tcp").

	* (info_nis.c) Added back old NIS reload code to allow NIS maps to
	support "regexp" caching.

	* (mapc.c) Added support for "regexp" caching.  This is a type of
	map cache where the entries are all REs to be matched against the
	requested key.  This implies "all" since all the keys must be
	loaded for the search to work.

Sat Feb 23 15:32:43 1991  Jan-Simon Pendry  (jsp at forest)

	* (afs_ops.c) Avoid spurious error messages about discarding a
	retry mntfs.

	* (amq_subr.c) Removed inet_ntoa call due to disagreement between
	gcc and libc about 4 byte structure passing.

	* (xutil.c) Changed way initial logging is done to make command
	line more usable.  Default logging flags are set statically and
	can then be modified by -x options.  At the end an additional call
	to switch_option is made to initialise xlog_level_init.

	* (umount_fs.c) ENOENT now treated the same as EINVAL.  If the
	filesystem gets removed and the mountpoint deleted then just
	assume the filesystem isn't there - which it isn't.

	* (host_ops.c) Now copes with unmount failures by attempting to
	remount the filesystems which had been unmounted.

	* (host_ops.c) Added check during fhandle collection to detect
	duplicate entries in the export list (from Stefan Petri).

	* (nfsx_ops.c) Reworked to correctly keep track of what is and
	isn't mounted.

Sun Jan 27 16:58:02 1991  Jan-Simon Pendry  (jsp at achilles)

	* (misc-next.h) Added missing NeXT config file.

	* Merged Harris HCX/UX support from Chris Metcalf.

	* (ifs_ops.c) added ifs_fmount entry point to keep nfsx_ops happy.

Sun Jan 13 18:19:19 1991  Jan-Simon Pendry  (jsp at beauty)

	* (nfsx_ops.c) play with opt_fs field to make sure it is unique.

Fri Dec 21 15:35:45 1990  Jan-Simon Pendry  (jsp at forest)

	* Release 5.3 Alpha 9.  This is still not Beta!

	* (host_ops.c) use normalized hostname in mtab entries, from
	Chris Metcalf.

	* (map.c) enum ftype -> ftype, from Andrew Findlay.

Mon Dec 17 01:11:25 1990  Jan-Simon Pendry  (jsp at beauty)

	* (amdref.texinfo) merged in fsinfo documentation from Nick.

Sat Dec 15 15:39:07 1990  Jan-Simon Pendry  (jsp at beauty)

	* (clock.c) minor tweaks to messages.

	* (sfs_ops.c) make the opt_fs field unique, rather than always
	".", but make sure it still begins with a "." to avoid a clash
	with any other existing mounts.

	* (amd.c) changed way local IP address is obtained to avoid using
	a call to the name server.  It was observed that if the power to
	the building goes and everything reboots simultaneously then there
	would be a good chance that the nameserver would not recover
	before Amd on another machine required it.  This happened :-)  Now
	use the RPC get_myaddress call.

	* (info_hes.c) added hesiod_reload code from Bruce Cole.
	Optionally compiled when HAS_HESIOD_RELOAD is defined.

	* (amq_subr.c) fix "security" check.

	* (amq.c) make sure a privileged port is allocated.  In fact
	RPC3.9 and newer make this guarentee but older versions don't so
	we do it here.

Sun Dec  2 21:30:07 1990  Jan-Simon Pendry  (jsp at achilles)

	* (afs_ops.c) fixed problem with pointer pre-increment.

Mon Nov 19 00:31:28 1990  Jan-Simon Pendry  (jsp at achilles)

	* (nfs_ops.c) saved filehandle with mntfs structure.  this allows
	nfsx unmounts to be undone even if the filehandle cache has lost
	the entry.  all of this is bogus and deserves a rewrite...

Sun Nov 18 22:55:43 1990  Jan-Simon Pendry  (jsp at achilles)

	* (nfsx_ops.c) now handles mounts of root filesystem correctly.

	* (afs_ops.c) fixed dfs_ops definition to call toplvl_mounted when
	done, so making sure that a map cache reference is set up.

Sun Nov 11 21:09:34 1990  Jan-Simon Pendry  (jsp at achilles)

	* (fsinfo/wr_fstab.c) has per-ostype fstab rules.

	* (fsinfo/fsi_lex.l) now works correctly with flex.

Mon Nov  5 00:08:30 1990  Jan-Simon Pendry  (jsp at achilles)

	* Release 5.3 Alpha 8.  No more new features from now to 5.3Rel.
	Call next one Beta.

	* (amdref.texinfo) more updates.

	* (info_union.c) reload routine now adds a wildcard pointing to
	the last named directory so that new files get created correctly.

Sun Nov  4 22:02:50 1990  Jan-Simon Pendry  (jsp at achilles)

	* (os-u4_0.h) Ultrix 4.0 support merged.

	* (os-utek.h) Utek 4.0 support merged.

	* (amdref.texinfo) fixed & updated.

	* (nfsx_ops.c) reworked string munging to prevent ..//.. strings
	from occuring.

	* (util.c) am_mounted now correctly updates the am_node for
	duplicate mounts.

	* (afs_ops.c) added union fstype.  derived from "toplvl" except it
	causes all the filesystems to be mounted.  cannot be used for
	filesystem types whose mounts may be defered (eg nfs) since it
	doesn't retry the mounts.

	* (info_union.c) map type for union fstype support.  currently
	can't handle being given automounted filesystems - causes a
	deadlock.

Sun Oct 21 22:56:16 1990  Jan-Simon Pendry  (jsp at achilles)

	* (fsinfo/*) finally integrated the fsinfo package.  currently no
	documentation or man page.  this is a pre-req to getting mmd up.

Sun Oct 14 20:02:11 1990  Jan-Simon Pendry  (jsp at achilles)

	* (amdref.texinfo) reworking of documentation continues.

	* (clock.c) reschedule_timeouts() now called in the event that the
	system clock goes backwards.  this is possible during the average
	bootstrap juggling act with timed/xntpd etc.  especially useful if
	your machines TOY clock gets way ahead of time.

Sat Oct  6 19:57:55 1990  Jan-Simon Pendry  (jsp at achilles)

	* (map.c) when expanding the filehandle for a server which is
	down, don't update the ttl on the original node unless a new node
	gets allocated.  this should give the original mount a chance to
	go away as soon as the server comes back.

	* (arch, os-type) Updated.

	* (nfs_ops.c) Added "noconn", "spongy" and "compress" mount
	options for 4.4 BSD.

Sun Sep 30 18:37:54 1990  Jan-Simon Pendry  (jsp at beauty)

	* Release 5.3 Alpha 6.

	* (util.c) domain_strip now doesn't leave partial domains behind.
	if it can't strip the complete domain it leaves the string untouched.

	* (restart.c) remember to initialise opt_opts field from mtab.

	* (nfs_ops.c) supports "nocto" option for SunOS4.1.

	* (os-irix.h) new SGI Iris port.

	* (os-next.h) new NeXT port.

	* (os-dgux.h) new DG/UX port.

	* (many) fixed problem where mf_opts was being used for two
	different purposes.  Now have two fields.

	* (mapc.c) error map prints error message whenever used.

	* (mapc.c) wildcard code rewritten.

	* (util.c) slpit into two parts - some code now in xutil.c.  This
	is used by mmd (not yet shipped).

Sun Aug 19 19:58:16 1990  Jan-Simon Pendry  (jsp at achilles)

	* (srvr_nfs.c) reduce verbosity of "nfs server yoyo is ok" messages.

	* (opts.c) fix deslashification in expand.

	* (nfs_start.c) amq registering done just before the server kicks
	in.  running amd with nothing to do leaves the portmapper in peace.

	* (mapc.c) bootstrap code abstracted to allow AMQ_MOUNT entry point.

	* (nfsx_ops.c) new filesystem type, supporting groups of nfs
	mounts.  needs abstracting to allow groups of (*) mounts.

	* (am.h, *_ops.c) am_ops structure changed; corresponding changes
	in the filesystem implemention source.  Change was to allow nfsx
	filesystem implementation.

	* (amd.c) hostname defaults to "localhost" startup code re-ordered
	so that logging still works in case things go wrong early.

	* (am_ops.c) new routine to print list of available fs types; used
	by the -v option.

	* (info_file.c) bug fix to make reloads work correctly.

	* (mtab_file.c) does locking on single write, to avoid trashing
	mount table when a mount and unmount are done at the same time.

	* (mount_fs.c) automount hack removed since afs_ops no longer
	needs it.

	* (afs_ops.c) split "auto" into several other filesystem types.
	Now much cleaner.

	* (amq.c) new -M option.

	* (amq_subr.c) support for AMQ_MOUNT added.

	* (amq.x) new AMQ_MOUNT RPC call allows mount map entries to be
	passed in at run-time.  Automount points can now be added
	dynamically, but not yet deleted.

Sat Jun 23 22:12:48 1990  Jan-Simon Pendry  (jsp at beauty)

	* Release 5.2 for Berkeley.

	* (*) Re-organised source code layout.  Now much more complicated.

	* (map.c) code which flushed the kernel name cache is not really
	needed now that the modify times on the automount directories are
	correctly updated so ifdef the whole lot.  Remove later...

	* (map.c) make sure that the automount directories modify times
	are updated when a change occurs so that the nfs client code can
	decide when to update its name cache.

	* (srvr_nfs.c) fixed bug which caused mounted filesystems to
	appear down when they were up.

	* YP becomes NIS.

Mon May 28 19:50:34 1990  Jan-Simon Pendry  (jsp at achilles)

	* (amd.tex) substantially updated with more explanation of the
	theory and more examples.

	* (nfs_stubs.c) statfs now claims to have a single used block.
	Avoids ambiguity between 100% and 0% full.

	* (nfs_stubs.c) changed to allow the size of symlinks optionally
	to be accurate wrt the length of the string returned.  Optional
	because it is cheaper to ignore the length when doing a getattr
	and just send any length for the readlink.  However, this breaks
	on some systems (e.g. Ultrix).

	* (mount_fs.c) automount points get marked type "nfs" instead of
	"ignore".  This is to fix an interaction with getwd().  Can go
	away when getwd() gets re-written.  Really only applies to SunOS4
	but change applies to everything to keep consistent across platforms.

	* (mount_fs.c) abstracted out mount options into a table and
	corresponding loop.

	* (srvr_nfs.c) make sure portmap information is available when
	needed, not just after a ping has succeeded.  This needed changing
	after the ping algorithm got changed.

	* (mntfs.c) fixed incorrect reference to mf_error instead of mf_flags.

	* (nfs_start.c) keep track of number of fds in use, so don't run
	select on system maximum (which is bad news if you have a large
	system maximum).

	* (host_ops.c) new NFS tree mount filesystem type (ala Sun -hosts).

	* (nfs_ops.c) abstracted out NFS mount code to support host_ops.

	* (afs_ops.c) dfs_readlink now returns the am_node, instead of the
	link.  This allows getattr to return the correct set of attributes
	so keeping Ultrix happy.

	* (afs_ops.c) Make certain the hostname field given to mount()
	does not get too long - otherwise random EINVAL errors occur.

	* Putting closing comments on all #endif's

Sun May 13 16:07:21 1990  Jan-Simon Pendry  (jsp at achilles)

	* (srvr_nfs.c) second rewrite of NFS ping algorithm.

Sun Apr 29 21:12:33 1990  Jan-Simon Pendry  (jsp at achilles)

	* (nfs_stubs.c) re-arranged readlink code to avoid need to
	pre-mount a direct filesystem whenever possible.

	* (host_ops.c) finally incorporated new module to support /net
	mount point.

Sat Mar 24 13:18:47 1990  Jan-Simon Pendry  (jsp at achilles)

	* (nfs_stubs.c) workaround added to rename entry point to avoid
	arguments with NFS client code.

	* (srvr_nfs.c) changed the way NFS pings are done and cleaned up
	the process for deciding when a server is up or down.  Now there
	is just a simple time limit on a reply from the server.  The limit
	is adjusted depending on whether the state of the server is known.

	* (opts.c) fixed bug with ${var/} expansion et al.  Added ${varN}
	N = 0..7 for use as scratch variables.

	* (mntfs.c) fixed bug in dup_mntfs().

Thu Jan 11 16:56:41 1990  Jan-Simon Pendry  (jsp at achilles)

	* Release 5.1c.

	* (amq*) has new options.  -f flushes the map cache and -m prints
	information about mounted filesystem and fileservers.

Tue Jan  2 14:44:21 1990  Jan-Simon Pendry  (jsp at achilles)

	* (util.c) am_mounted() patches the path for "direct" mounted
	filesystems - cosmetic.

	* (afs_ops.c) when possible sets a small kernel attribute cache
	timeout on the automount points.

	* (nfs_stubs.c) delete() and rmdir() operations implemented.  Used
	when a mount point is timed out so the kernel name cache gets to
	know about the changes.  Fixes most ESTALE errors.

	* (nfs_stubs.c) New do_readlink() function added.  This is used to
	make sure that a filesystem is mounted at the time a link is read
	in the case of "direct" mounts.  Done so that the length of the
	link is available when the initial getattr is done on the mountpoint.

	* (sfs_ops.c) Changed implementation to avoid race conditions.
	The link target is re-arranged so that sublink points to the
	target and fs always points at ".".

	* Fixed mount flag bug on Ultrix.

	* Added support from Sjoerd Mullender for Alliant FX/4 and Encore
	Multimax.

Thu Dec  7 17:55:29 1989  Jan-Simon Pendry  (jsp at achilles)

	* (afs_ops.c) dfs_readlink now does a new_ttl on the node it
	returns.

	* (afs_ops.c) next_nonerror_node now implements the task after
	which it is named.

Tue Nov 28 17:20:52 1989  Jan-Simon Pendry  (jsp at achilles)

	* Release 5.1b.

	* (restart.c) Generates link nodes for any unrecognised filesystem
	types and then marks them so that they are never deleted (since
	they could never be automounted later).

	* (os-*.h) Irrelevant #undef's deleted.

	* (arch) Now knows about AIX on RTs.

	* (amq.c) Rationalised the output.  Now only gives you what you
	asked for.

	* (am.h) New macro: FSRV_ISDOWN(fs), which checks whether a
	fileserver is down.

	* (afs_ops.c) When a mount fails due to a timeout the underlying
	filesystem is ripped away and replaced with an error fs.  This
	avoids the possibility of being left with a single error reference
	to a valid mounted filesystem.

Thu Nov 23 18:04:29 1989  Jan-Simon Pendry  (jsp at achilles)

	* (nfs_start.c) Re-order bootstrap sequence to avoid potential
	deadlock if restart() ends up accessing one of the automount points.

	* (amq.c) Don't produce default mount output if one of the -l, -x
	or -D options was used.

	* (umount_fs.c) Add alternative unmount routine for 4.4 BSD.

Mon Nov 20 16:22:50 1989  Jan-Simon Pendry  (jsp at achilles)

	* (os-bsd44.h) Fixed redefinition of UMOUNT_FS.

	* (info_ndbm.c) Added missing #include <sys/stat.h>.

	* (mapc.c) Fixed typo in ifdef around gdbm config entry.

Sat Nov 18 16:39:13 1989  Jan-Simon Pendry  (jsp at achilles)

	* (util.c) If "/" is automounted, make sure it is never timed out.

	* (mtab.c) Missing clock invalidation added in read_mtab (from a file).

	* (mntfs.c) realloc_mntfs simplified.

	* (map.c) Closed a race condition during shutdown when second and
	subsequent duplicate mounts were deleted prematurely.

	* (afs_ops.c) Duplicate mounts are now given the correct return
	code.

Fri Nov 17 18:58:18 1989  Jan-Simon Pendry  (jsp at achilles)

	* 5.1 Release.

Thu Nov 16 17:57:02 1989  Jan-Simon Pendry  (jsp at achilles)

	* (mntfs.c) Make sure inherit mntfs structures are not cached
	after last reference; otherwise a second reference to the
	inherited filesystem will get stuck on the inherit rather than the
	(now) fully mounted filesystem.

	* (am.c, nfs_start.c) After forking the server, make sure the
	parent does not exit until the automount points are mounted.  This
	allows a clean sequence during system startup.

	* Initial port to 4.4 BSD.  Several new configuration abstractions
	were added to make this port possible.

Thu Nov  9 21:42:14 1989  Jan-Simon Pendry  (jsp at achilles)

	* (afs_ops.c, opts.c) Added map logging to facilitate mount map
	debugging without needing a -DDEBUG version of Amd.

	* (afs_ops.c) Make sure the length of the fs_hostname mount
	parameter does not exceed MAXHOSTNAMESZ.

Wed Nov  8 13:44:02 1989  Jan-Simon Pendry  (jsp at achilles)

	* Change the message log format to indicate the severity of the
	message to allow simpler analysis of the log file.

Tue Nov  7 14:11:36 1989  Jan-Simon Pendry  (jsp at achilles)

	* 5.0 Patchlevel 11.

	* (os-bsd44.h) Initial guess at 4.4 BSD definitions.

	* (os-aux.h) Port for Macintosh II from Julian Onions.

	* (amq.c) Output formats cleaned up.  AMQ_MNTTREE is still broken
	in amq_subr.c though.

	* (afs_ops.c) If a mount timed out, for example an NFS server was
	down at the time, it was possible for the error code to remain
	unset thus jamming that mount node in a state from which it could
	not recover.  Just make sure that the mf_error field gets filled
	in when an error occurs.

	* (afs_ops.c) strsplit is run over /defaults to avoid problems
	with whitespace creeping in.

Sun Nov  5 11:50:51 1989  Jan-Simon Pendry  (jsp at achilles)

	* (util.c) am_mounted: Added missing initialisation of stats.s_mtime.

Fri Nov  3 17:33:02 1989  Jan-Simon Pendry  (jsp at achilles)

	* 5.0 Patchlevel 10.

	* Changed the copyright.

Thu Nov  2 17:07:53 1989  Jan-Simon Pendry  (jsp at achilles)

	* 5.0 Patchlevel 9.

	* (opts.c) new option syntax: == != :=

	* (nfs_ops.c) Less caching of filehandles.  Now cached errors are
	discarded after use.

	* (mtab.c) now attempts to deal with a lack of open file slots (ENFILE).

	* (mount_fs.c) automount entries in the mount table now have a
	dev= entry in the same way as NFS and UFS.

	* (mntfs.c) mntfs nodes are now cached after the last reference
	and discarded <ALLOWED_MOUNT_TIME> seconds later.  This avoids
	thrashing during a mount.

	* (mapc.c) map default cache mode is now selected with
	"mapdefault", not "default"

	* (amd.tex) numerous clarifications.  Still more work required...

	* (amq_subr.c) now allows the -x option of amq to operate.

	* (afs_ops.c) afs_bgmount now keeps track of which filesystem
	needed retrying and ensures that the mount node in the
	continuation correctly points at an unmounted filesystem.  This
	fixes a problem whereby a valid mounted filesystem could appear to
	have failed to mount.

	* Configure now gives more of a running commentary and checks
	whether os-type and arch actually worked.

	* Allow spurious ';'s in a mount location.

Fri Oct 27 14:03:31 1989  Jan-Simon Pendry  (jsp at achilles)

	* foo=blah changed to foo:=blah, foo==blah and foo!=blah.

	* -l stderr changed to -l /dev/stderr.

Thu Oct 19 15:34:28 1989  Jan-Simon Pendry  (jsp at achilles)

	* 5.0 Patchlevel 6.

	* LOG_INFO messages have been rationalised so that some
	statistics, graphs and so on can be generated.

	* Transaction ID's for RPC calls are now allocated by the
	individual callers, rather than from a central pool.  This
	decreases the load on mount daemons and NFS servers since the
	same XID is used for retries when needed.

	* Many fine details of the new data structures have been changed.
	Some areas have been optimized.

Fri Oct 13 12:31:26 1989  Jan-Simon Pendry  (jsp at achilles)

	* Restart code re-implemented to work with the new data structures.

	* Fine tuning applied to new NFS server modeling code.

Thu Oct 12 15:57:24 1989  Jan-Simon Pendry  (jsp at achilles)

	* Added ${/var} and ${var/} variable expansions.  The first gives
	the "basename" component of the variable, the latter gives the
	"dirname" component.  Additionally, spurious /'s are deleted after
	the variable expansions is complete.

	* Added new -C option to allow the machine's cluster name to be
	given to amd.  ${cluster} fetches the value and can be used as
	another selector.

	* Broken the major data struct (am_node) into three layers:
	am_node (one for each automount node), mntfs (one for each mounted
	filesystem) and fserver (one for each file server).  Machine
	up/down state is maintained in the fserver layer.  Filesystem
	mount/unmount state is maintained in the mntfs layer.  This change
	fixes the last known major problem caused by the lack of a central
	focus for filesystem and fileserver status.  There is a dummy file
	server layer for local filesystems (ufs, link, program, error).

Tue Oct 10 11:15:42 1989  Jan-Simon Pendry  (jsp at achilles)

	* 5.0 Patchlevel 5.

	* (nfs_ops.c) the filehandle cache is now flushed when a
	filesystem is unmounted.  This avoids ending up with stale
	information if a server bounces.

	* (clock.c) new module to implement callouts.  Many other
	routines changed to use callouts instead of messing with ttl
	fields.

Sun Oct  1 17:08:20 1989  Jan-Simon Pendry  (jsp at achilles)

	* 5.0 Patchlevel 3 & 4.

	* Numerous cleanups.

Wed Sep 13 14:30:05 1989  Jan-Simon Pendry  (jsp at achilles)

	* 5.0 Patchlevel 2.

	* (nfs_ops.c) portmap information is not remembered beyond the
	basic filehandle cache interval.  That avoids problems when a new
	portmap and/or rpc.mountd is started and the bound port changes.

	* (mapc.c) cache reloads are automatically done every hour.

	* Removed xlog macro in favour of plog() so that the log level
	can be reflected through to syslog().  log() routine renamed to
	plog() which takes an extra parameter indicating the log level.

Tue Sep  5 20:00:19 1989  Jan-Simon Pendry  (jsp at achilles)

	* (nfs_ops.c) when a server is known to be down, any cached file
	handles and port mapping informaton is flushed since that may have
	changed when it comes back up.

	* (map.c) timeout no longer attempts to unmount a hung mount point.

Mon Sep  4 14:49:18 1989  Jan-Simon Pendry  (jsp at achilles)

	* (afs_ops.c) a mount node which timed out during mount is now
	retained for the normal timeout interval rather than for a short
	period.  This avoids wasting time retrying mounts from a server
	which is down.

	* (afs_ops.c) hung mounts are now detected and not used as a
	duplicate mount - something which defeated the replacement fs
	scheme.

	* (nfs_ops.c) keepalive's now back-off when a server has gone
	down.

Thu Aug 31 21:18:35 1989  Jan-Simon Pendry  (jsp at achilles)

	* 5.0 Patchlevel 1.

	* Fixed several bugs which showed up in the keepalive
	implementation when a gateway went down causing
	a different sequence of errors than usual.

Wed Aug 30 11:29:21 1989  Jan-Simon Pendry  (jsp at achilles)

	* (amq.x) now uses a Sun assigned program number.

	* Revision 5.0 - can now start using metaconfig.

Tue Aug 29 14:36:48 1989  Jan-Simon Pendry  (jsp at achilles)

	* (os-u3_0.h, os-type) now knows about DECstations (mips).

	* (nfs_stubs.c) Added hooks to readlink entry point to call
	per-fs readlink routine if it exists, otherwise old behaviour.

	* (afs_ops.c) Added implementation of "type=direct".  This is
	the same as "type=auto" but is itself the link to the
	mount point, rather than being a directory containing a list
	of links to mount points.

Mon Aug 28 17:48:15 1989  Jan-Simon Pendry  (jsp at achilles)

	* (afs_ops.c) Changed readdir to workaround a problem on
	ultrix 3 where it seems to forget that eof has been reached.

Thu Aug 24 15:17:55 1989  Jan-Simon Pendry  (jsp at achilles)

	* Created "beta16".

	* (afs_ops.c) /defaults is located along with every key.
	this makes it possible to update the /defaults in
	a map and get to use it.

	* (mapc.c) added map cache synchronization support.  if
	a file or ndbm map is updated the cache is junked so avoiding
	things getting out of sync.

Wed Aug 23 19:17:52 1989  Jan-Simon Pendry  (jsp at achilles)

	* (os-u3_0.h) new file to support Ultrix 3.0

	* (opts.c) allow environment variables to be accessed via
	the same ${env} syntax used for options & selectors.

Tue Aug 22 13:19:49 1989  Jan-Simon Pendry  (jsp at achilles)

	* (opts.c, get_args.c) added support for kernel architecture
	type to allow /usr/kvm to be automounted under SunOS 4.x.

	* (os-xinu43.h) updated for june '89 release of MORE/bsd.

	* (opts.c) fixed memory allocation problems where some strings
	may not have been strdup'ed before they were free'ed so causing
	the malloc arena to get into a twist.  This caused core dumps on
	some machines and infinite loops on others.

	* (*.c) clock handling is now done by a macro.  Global variable
	clock_valid is > 0 (ie the time) when valid, 0 if invalid.

	* (map.c) timeout code survived a complete rewrite and is now
	O(n) rather than O(n^2).

	* (info_hes.c) new database hooks for Hesiod nameserver.

	* (get_args.c) the local sub-domain is picked up from the
	hostname if it is not specifed with -d.  The subdomain is
	then stripped from the hostname.

	* (am.c) when a SIGTERM is received, an immediate abort
	occurs - only the top-level automounts are unmounted; all
	other mounts stay -- use amd -r to restart.

	* (afs_ops.c) cleaned up key prefix handling.  Again updated
	the "hostname" string passed to the kernel so that includes
	the hostname, pid and mount point.

Tue Aug  8 16:05:23 1989  Jan-Simon Pendry  (jsp at achilles)

	* (nfs_ops.c) changed the way the file handle cache is managed.
	No longer gets a race condition between something entering the
	cache and being used and discard.

Tue Jul 25 20:40:51 1989  Jan-Simon Pendry  (jsp at achilles)

	* (map.c) changed fh_to_mp2 so that it does not return
	ESTALE during shutdown.  it returns ENOENT instead which
	avoids thrashing with the kernel.

Sun Jul 23 15:06:10 1989  Jan-Simon Pendry  (jsp at achilles)

	* (afs_ops.c) make sure the incoming key from the kernel
	does not contain any characters which could cause trouble
	during macro expansion (such as `"! etc).

	* (afs_ops.c) fixed contruction of "mtab" entry.

Fri Jul 21 11:01:05 1989  Jan-Simon Pendry  (jsp at achilles)

	* (afs_ops.c) some changes to support the new startup
	shutdown scheme.

	* (map.c) startup and shutdown are now done using the
	standard interfaces.  Startup is done by creating a
	private cache map  ";root;" and then doing lookups
	on all the names in it.  Shutdown is done by forcibly
	timing out all the mount points including the automount
	points.

	* (info_*.c) modified to provide interface required by
	mapc.c module.

	* (mapc.c) new module to implement map caching.  Caching
	can be controlled by an fs option.  "all" means cache
	the entire map (if possible).  "inc" means cache things
	incrementally.  "none" means never cache things.  Each
	map type has a default caching mode which is used if
	cache option "default" is used.

Wed Jul 19 16:14:52 1989  Jan-Simon Pendry  (jsp at achilles)

	* (sched.c) implements a general sleep/wakeup scheme and uses
	it for sub-process handling.

	* (nfs_start.c) task_notify() called from where it used to
	be called.

	* (nfs_ops.c) now implements a non-blocking rpc library.
	Everything in nfs_ops was changed to use it.  This should
	not be in this file and will be moved later.

	* (map.c) if a mount point times out and it is deferred then
	issue a wakeup so that it can be retried.

	* (map.c) when creating a new mount point fetches the entry
	"/defaults" from the associated map if no other options are
	specified.

	* (am.c) implements the -p (print process id) option.

	* (afs_ops.c) a mount attempt now has a time-to-live of twenty
	seconds.  if only deferred attempts are waiting after that
	interval the kernel gets sent ETIMEDOUT.

	* (afs_ops.c) the name by which the kernel knows the filesystem
	has changed from pid%d@host to /mountpoint@host.  That looks
	better to users who get hit by it.

Fri Jul 14 18:46:16 1989  Jan-Simon Pendry  (jsp at achilles)

	* (afs_ops.c) now knows about defered mounts - mounts which
	are not in progress, not completed, and not failed.

	* (sched.c) added new entry point sched_ast().  This simulates
	a completed job.  The basic idea is to let something else return
	to the main scheduling loop with a guarentee that it will be
	called back when some other action has taken place.

	* (nfs_ops.c) implemented a file handle cache.  The nfs_init
	routine starts up a request for the filehandle and the mount
	routine uses it when it arrives.

Thu Jul 13 18:07:58 1989  Jan-Simon Pendry  (jsp at achilles)

	* (afs_ops.c) found a race condition between an error occuring
	and the am_node being timed out.  Fixed by updating the
	time-to-live and keepalive counters in the node whenever
	AMF_MOUNTING is cleared.  Also changed afs_lookuppn() so that
	it doesn't destroy the node when it returns the error code.
	This stops thrashing and the node is eventually timed out.
	Now the only way a node gets deleted is by the timeout code
	which seems more elegant.

Tue Jul 11 15:36:44 1989  Jan-Simon Pendry  (jsp at achilles)

	* Created "beta15".

	* Fixed *all* references to "u2.2".  Some where missed in
	the original change.  They are now u2_2.

	* (mk-amd-map.c) new command.  Converts plain files into
	ndbm databases for use by the info_ndbm module.  Hooks
	included for future support for gdbm just as soon as I
	can get a copy.

Sun Jul  9 19:00:22 1989  Jan-Simon Pendry  (jsp at achilles)

	* Created "beta14".

	* (get_info.c) code to handle yp and files now split into
	new files info_yp.c and info_file.c  New support for ndbm
	databases is in info_ndbm.c.  A table in get_info.c controls
	what and in which order things are searched.

	* (map.c, nfs_stubs.c) better handling for hung mount points.
	if a filehandle is passed in by the kernel which references
	a hung node, then try to find a replacement, possibly by calling
	lookup explicitly.

	* (*.c) use new xlog(level)(message) interface

Thu Jun  8 20:28:55 1989  Jan-Simon Pendry  (jsp at achilles)

	* (nfs_ops.c, ufs_ops.c) when compiled with DEBUG, display
	the fs options being used.

	* (am.c) make test for root a little more polite.

	* (get_args.c) update Usage message to include -r option.

Wed Jun  7 16:28:51 1989  Jan-Simon Pendry  (jsp at achilles)

	* (rpc_fwd.c) fwd_reply: if the recvfrom call fails because it
	is interrupted then try again.

Tue Jun  6 16:39:15 1989  Jan-Simon Pendry  (jsp at achilles)

	* Created "beta12".

	* (afs_ops.c) inheriting mount option list from command line
	is now cumulative.  A -foo on the command line is prepended
	to the default option list taken from the map.  This can be
	used to override the ``default default'' options in opts.c.

	* (get_args.c, am.c) added new -r (restart) option.  Restart of
	mounted filesystems is only done if this option is specified.
	[Should *not* be specified in /etc/rc.local of course. - wrong]

	* (yp_master.c) make the enumeration error message more verbose
	when debugging is enabled.

	* (rpc_fwd.c) rearranged some declarations at the top.  Removed
	a spurious call to free which was causing grief on some systems,
	but not on Sun's.  [This problem was the reason for implementing
	the -D mem option.]

	* (opts.c) make sure opt_key and opt_path are set to a zero
	length string unless otherwise specified.  Previously they
	were a source of dangling pointers.

	* (nfs_ops.c) make sure that the allocated nfs_private identifiers
	are unique even when some filesystem are being restarted.  This mean
	starting the basic allocation from 1, not zero.

	* (am.h, get_args.c, util.c) added definition and implmentation of
	a simple memory allocation trace (D_MEM).

	* (afs_ops.c) afs_lookuppn: tightened up memory allocation and
	delay string copying until last possible moment.

Mon Jun  5 18:01:18 1989  Jan-Simon Pendry  (jsp at achilles)

	* (Makefile.com) diffs: added new rule to generate diffs
	between versions.

	* (get_info.c) search_file: added a new dlog() to note when
	wildcards are returned.

	* (afs_ops.c) afs_lookuppn: call to init_map specifies efs as
	the default ops structure.  If the location list only contained
	defaults and no real mounts then this previously caused a null
	pointer dereference.

	* (map.c) last_used_map: Added new variable.  Keeps track of the
	last used map, which may be wildly different from first_free_map.
	This fixes bugs in several routines in this file.

	* (util.c) mkdirs, rmdirs: Changed directory make/unmake.  It is
	not possible to quickly determine how many directories need to
	be created or deleted, so we try to make as many as possible.

	* (opts.c) Added default values for rfs, rhost and fs.
	The new defaults guarentee unique names to allow the NFS
	keepalive stuff to work.

Sun Jun  4 16:12:15 1989  Jan-Simon Pendry  (jsp at achilles)

	* First draft of documentation included in the next release.

	* Hooks for TFS added, though this still requires a lot of work.

	* Re-implemented option handling.  Options are now allocated
	dynamically on a per-mount basis in the continuation structure.

	* Changed os type u2.2 to u2_2 to allow for regular expression
	matching in selectors.

	* Format of mount maps is now entirely different.  Instead of
	guessing which filesystem type is being used, it is now explicitly
	stated along with the required options.  Variable expansion is
	done on the options and selectors are also implemented.  The
	requested name can also contain any of the selectors.

Wed May 24 15:21:39 1989  Jan-Simon Pendry  (jsp at achilles)

	* Re-implemented NFS ping algorithm to use the new RPC forwarding
	system.  This allowed a large amount of nfs_ops specific code
	to be removed from nfs_start.c and moved to nfs_ops.c.
	There is still no strategy for hung file systems.  At the moment
	it will merely try to mount an alternative (or the same again)
	to the same place in the file system.

	* Added RPC forwarding package.  This supports general RPC gatewaying
	over a UDP transport.  The idea is to put a packet identifier into
	each outgoing RPC packet and then match that up in a database when
	a reply comes in.  The database records the original packet identifier
	(so that it can be replaced), the source address for the packet and
	a function to call to do the forwarding.

	* ChangeLog added between beta8 and beta9.  Should have done this sooner.
