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 . * (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 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.