xref: /original-bsd/usr.sbin/amd/amd/ChangeLog (revision 95a66346)
1Sun Mar 17 12:05:27 1991  Jan-Simon Pendry  (jsp at forest)
2
3	* Release 5.3 Alpha 11.
4
5	* (amq.8) Updated.
6
7	* (amq.c) Added new -v option which displays the version number of
8	the target Amd.  Also added support to Amd and reworked newvers
9	script.  Got rid of rcs_info.c.
10
11	* (mk-amd-map.c) Changed name of remove function to avoid clash
12	with ANSI C.
13
14	* (wire.c) Fixed to work with new 4.4BSD sockaddr's.
15
16	* Changed const to Const everywhere and added new define in config.h.
17
18	* (mk-amd-map.c) New -p option which just writes the output to
19	stdout.  Useful for making NIS or Hesiod maps.
20
21	* (amdref) Small updates and clarifications.
22
23Sat Mar 16 20:35:17 1991  Jan-Simon Pendry  (jsp at forest)
24
25	* (amq_subr.c) Flush request now flushes all internal caches.
26
27	* (amq_subr.c) Changed xdr_amq_mount_tree to return only the
28	required sub-tree.
29
30	* (ifs_ops.c) Added missing return 0; to ifs_mount.
31
32Sat Mar  9 19:31:25 1991  Jan-Simon Pendry  (jsp at forest)
33
34	* (get_args.c) Output the primary network interface information
35	with the -v option.
36
37	* (mapc.c) Fixed spurious warning about "root" map not supporting
38	cache mode "all".  Added new (unnamed) cache mode MAPC_ROOT.
39
40	* (info_nis.c) Fixed order number testing which was the cause of a
41	loop.
42
43Sun Mar  3 17:57:03 1991  Jan-Simon Pendry  (jsp at forest)
44
45	* Release 5.3 Alpha 10.
46
47	* Introduced new inet_dquad routine which prints IP addresses in
48	dotted quad format.  The C library routine is not used because it
49	uses a static buffer and it takes a structure argument on some
50	machines and unsigned longs on others.  This confuses the hell out
51	of some compilers and causes SEGVs.
52
53	* task_notify becomes do_task_notify to avoid clash with Mach.
54
55	* (mntfs.c) In realloc_mntfs, the private data field wasn't being
56	cleared out when the mntfs object was being re-used.  This meant
57	that the data might be used for the wrong mount, so causing
58	various obscure errors.
59
60	* (info_file.c) Reworked to provide support for map cache "sync"
61	option.
62
63	* (mapc.c) Added new "sync" option to map cache.  This ensures
64	that the cached data doesn't become stale wrt the source.
65	Currently this isn't implemented for passwd and hesiod maps.
66
67Wed Feb 27 11:38:07 1991  Jan-Simon Pendry  (jsp at forest)
68
69	* (afs_ops.c) Fixed pid put in fs_hostname for toplvl mount.
70
71Sun Feb 24 19:37:55 1991  Jan-Simon Pendry  (jsp at forest)
72
73	* (wire.c) New module which determines the name of the primary
74	attached network.  This could be used to determine which
75	server to use.
76
77	* (srvr_nfs.c) Changed mount daemon port mapping caching.  This is
78	now much more eager to recompute the mapping than before.  Will
79	also now work even if pinging is switched off (for example "tcp").
80
81	* (info_nis.c) Added back old NIS reload code to allow NIS maps to
82	support "regexp" caching.
83
84	* (mapc.c) Added support for "regexp" caching.  This is a type of
85	map cache where the entries are all REs to be matched against the
86	requested key.  This implies "all" since all the keys must be
87	loaded for the search to work.
88
89Sat Feb 23 15:32:43 1991  Jan-Simon Pendry  (jsp at forest)
90
91	* (afs_ops.c) Avoid spurious error messages about discarding a
92	retry mntfs.
93
94	* (amq_subr.c) Removed inet_ntoa call due to disagreement between
95	gcc and libc about 4 byte structure passing.
96
97	* (xutil.c) Changed way initial logging is done to make command
98	line more usable.  Default logging flags are set statically and
99	can then be modified by -x options.  At the end an additional call
100	to switch_option is made to initialise xlog_level_init.
101
102	* (umount_fs.c) ENOENT now treated the same as EINVAL.  If the
103	filesystem gets removed and the mountpoint deleted then just
104	assume the filesystem isn't there - which it isn't.
105
106	* (host_ops.c) Now copes with unmount failures by attempting to
107	remount the filesystems which had been unmounted.
108
109	* (host_ops.c) Added check during fhandle collection to detect
110	duplicate entries in the export list (from Stefan Petri).
111
112	* (nfsx_ops.c) Reworked to correctly keep track of what is and
113	isn't mounted.
114
115Sun Jan 27 16:58:02 1991  Jan-Simon Pendry  (jsp at achilles)
116
117	* (misc-next.h) Added missing NeXT config file.
118
119	* Merged Harris HCX/UX support from Chris Metcalf.
120
121	* (ifs_ops.c) added ifs_fmount entry point to keep nfsx_ops happy.
122
123Sun Jan 13 18:19:19 1991  Jan-Simon Pendry  (jsp at beauty)
124
125	* (nfsx_ops.c) play with opt_fs field to make sure it is unique.
126
127Fri Dec 21 15:35:45 1990  Jan-Simon Pendry  (jsp at forest)
128
129	* Release 5.3 Alpha 9.  This is still not Beta!
130
131	* (host_ops.c) use normalized hostname in mtab entries, from
132	Chris Metcalf.
133
134	* (map.c) enum ftype -> ftype, from Andrew Findlay.
135
136Mon Dec 17 01:11:25 1990  Jan-Simon Pendry  (jsp at beauty)
137
138	* (amdref.texinfo) merged in fsinfo documentation from Nick.
139
140Sat Dec 15 15:39:07 1990  Jan-Simon Pendry  (jsp at beauty)
141
142	* (clock.c) minor tweaks to messages.
143
144	* (sfs_ops.c) make the opt_fs field unique, rather than always
145	".", but make sure it still begins with a "." to avoid a clash
146	with any other existing mounts.
147
148	* (amd.c) changed way local IP address is obtained to avoid using
149	a call to the name server.  It was observed that if the power to
150	the building goes and everything reboots simultaneously then there
151	would be a good chance that the nameserver would not recover
152	before Amd on another machine required it.  This happened :-)  Now
153	use the RPC get_myaddress call.
154
155	* (info_hes.c) added hesiod_reload code from Bruce Cole.
156	Optionally compiled when HAS_HESIOD_RELOAD is defined.
157
158	* (amq_subr.c) fix "security" check.
159
160	* (amq.c) make sure a privileged port is allocated.  In fact
161	RPC3.9 and newer make this guarentee but older versions don't so
162	we do it here.
163
164Sun Dec  2 21:30:07 1990  Jan-Simon Pendry  (jsp at achilles)
165
166	* (afs_ops.c) fixed problem with pointer pre-increment.
167
168Mon Nov 19 00:31:28 1990  Jan-Simon Pendry  (jsp at achilles)
169
170	* (nfs_ops.c) saved filehandle with mntfs structure.  this allows
171	nfsx unmounts to be undone even if the filehandle cache has lost
172	the entry.  all of this is bogus and deserves a rewrite...
173
174Sun Nov 18 22:55:43 1990  Jan-Simon Pendry  (jsp at achilles)
175
176	* (nfsx_ops.c) now handles mounts of root filesystem correctly.
177
178	* (afs_ops.c) fixed dfs_ops definition to call toplvl_mounted when
179	done, so making sure that a map cache reference is set up.
180
181Sun Nov 11 21:09:34 1990  Jan-Simon Pendry  (jsp at achilles)
182
183	* (fsinfo/wr_fstab.c) has per-ostype fstab rules.
184
185	* (fsinfo/fsi_lex.l) now works correctly with flex.
186
187Mon Nov  5 00:08:30 1990  Jan-Simon Pendry  (jsp at achilles)
188
189	* Release 5.3 Alpha 8.  No more new features from now to 5.3Rel.
190	Call next one Beta.
191
192	* (amdref.texinfo) more updates.
193
194	* (info_union.c) reload routine now adds a wildcard pointing to
195	the last named directory so that new files get created correctly.
196
197Sun Nov  4 22:02:50 1990  Jan-Simon Pendry  (jsp at achilles)
198
199	* (os-u4_0.h) Ultrix 4.0 support merged.
200
201	* (os-utek.h) Utek 4.0 support merged.
202
203	* (amdref.texinfo) fixed & updated.
204
205	* (nfsx_ops.c) reworked string munging to prevent ..//.. strings
206	from occuring.
207
208	* (util.c) am_mounted now correctly updates the am_node for
209	duplicate mounts.
210
211	* (afs_ops.c) added union fstype.  derived from "toplvl" except it
212	causes all the filesystems to be mounted.  cannot be used for
213	filesystem types whose mounts may be defered (eg nfs) since it
214	doesn't retry the mounts.
215
216	* (info_union.c) map type for union fstype support.  currently
217	can't handle being given automounted filesystems - causes a
218	deadlock.
219
220Sun Oct 21 22:56:16 1990  Jan-Simon Pendry  (jsp at achilles)
221
222	* (fsinfo/*) finally integrated the fsinfo package.  currently no
223	documentation or man page.  this is a pre-req to getting mmd up.
224
225Sun Oct 14 20:02:11 1990  Jan-Simon Pendry  (jsp at achilles)
226
227	* (amdref.texinfo) reworking of documentation continues.
228
229	* (clock.c) reschedule_timeouts() now called in the event that the
230	system clock goes backwards.  this is possible during the average
231	bootstrap juggling act with timed/xntpd etc.  especially useful if
232	your machines TOY clock gets way ahead of time.
233
234Sat Oct  6 19:57:55 1990  Jan-Simon Pendry  (jsp at achilles)
235
236	* (map.c) when expanding the filehandle for a server which is
237	down, don't update the ttl on the original node unless a new node
238	gets allocated.  this should give the original mount a chance to
239	go away as soon as the server comes back.
240
241	* (arch, os-type) Updated.
242
243	* (nfs_ops.c) Added "noconn", "spongy" and "compress" mount
244	options for 4.4 BSD.
245
246Sun Sep 30 18:37:54 1990  Jan-Simon Pendry  (jsp at beauty)
247
248	* Release 5.3 Alpha 6.
249
250	* (util.c) domain_strip now doesn't leave partial domains behind.
251	if it can't strip the complete domain it leaves the string untouched.
252
253	* (restart.c) remember to initialise opt_opts field from mtab.
254
255	* (nfs_ops.c) supports "nocto" option for SunOS4.1.
256
257	* (os-irix.h) new SGI Iris port.
258
259	* (os-next.h) new NeXT port.
260
261	* (os-dgux.h) new DG/UX port.
262
263	* (many) fixed problem where mf_opts was being used for two
264	different purposes.  Now have two fields.
265
266	* (mapc.c) error map prints error message whenever used.
267
268	* (mapc.c) wildcard code rewritten.
269
270	* (util.c) slpit into two parts - some code now in xutil.c.  This
271	is used by mmd (not yet shipped).
272
273Sun Aug 19 19:58:16 1990  Jan-Simon Pendry  (jsp at achilles)
274
275	* (srvr_nfs.c) reduce verbosity of "nfs server yoyo is ok" messages.
276
277	* (opts.c) fix deslashification in expand.
278
279	* (nfs_start.c) amq registering done just before the server kicks
280	in.  running amd with nothing to do leaves the portmapper in peace.
281
282	* (mapc.c) bootstrap code abstracted to allow AMQ_MOUNT entry point.
283
284	* (nfsx_ops.c) new filesystem type, supporting groups of nfs
285	mounts.  needs abstracting to allow groups of (*) mounts.
286
287	* (am.h, *_ops.c) am_ops structure changed; corresponding changes
288	in the filesystem implemention source.  Change was to allow nfsx
289	filesystem implementation.
290
291	* (amd.c) hostname defaults to "localhost" startup code re-ordered
292	so that logging still works in case things go wrong early.
293
294	* (am_ops.c) new routine to print list of available fs types; used
295	by the -v option.
296
297	* (info_file.c) bug fix to make reloads work correctly.
298
299	* (mtab_file.c) does locking on single write, to avoid trashing
300	mount table when a mount and unmount are done at the same time.
301
302	* (mount_fs.c) automount hack removed since afs_ops no longer
303	needs it.
304
305	* (afs_ops.c) split "auto" into several other filesystem types.
306	Now much cleaner.
307
308	* (amq.c) new -M option.
309
310	* (amq_subr.c) support for AMQ_MOUNT added.
311
312	* (amq.x) new AMQ_MOUNT RPC call allows mount map entries to be
313	passed in at run-time.  Automount points can now be added
314	dynamically, but not yet deleted.
315
316Sat Jun 23 22:12:48 1990  Jan-Simon Pendry  (jsp at beauty)
317
318	* Release 5.2 for Berkeley.
319
320	* (*) Re-organised source code layout.  Now much more complicated.
321
322	* (map.c) code which flushed the kernel name cache is not really
323	needed now that the modify times on the automount directories are
324	correctly updated so ifdef the whole lot.  Remove later...
325
326	* (map.c) make sure that the automount directories modify times
327	are updated when a change occurs so that the nfs client code can
328	decide when to update its name cache.
329
330	* (srvr_nfs.c) fixed bug which caused mounted filesystems to
331	appear down when they were up.
332
333	* YP becomes NIS.
334
335Mon May 28 19:50:34 1990  Jan-Simon Pendry  (jsp at achilles)
336
337	* (amd.tex) substantially updated with more explanation of the
338	theory and more examples.
339
340	* (nfs_stubs.c) statfs now claims to have a single used block.
341	Avoids ambiguity between 100% and 0% full.
342
343	* (nfs_stubs.c) changed to allow the size of symlinks optionally
344	to be accurate wrt the length of the string returned.  Optional
345	because it is cheaper to ignore the length when doing a getattr
346	and just send any length for the readlink.  However, this breaks
347	on some systems (e.g. Ultrix).
348
349	* (mount_fs.c) automount points get marked type "nfs" instead of
350	"ignore".  This is to fix an interaction with getwd().  Can go
351	away when getwd() gets re-written.  Really only applies to SunOS4
352	but change applies to everything to keep consistent across platforms.
353
354	* (mount_fs.c) abstracted out mount options into a table and
355	corresponding loop.
356
357	* (srvr_nfs.c) make sure portmap information is available when
358	needed, not just after a ping has succeeded.  This needed changing
359	after the ping algorithm got changed.
360
361	* (mntfs.c) fixed incorrect reference to mf_error instead of mf_flags.
362
363	* (nfs_start.c) keep track of number of fds in use, so don't run
364	select on system maximum (which is bad news if you have a large
365	system maximum).
366
367	* (host_ops.c) new NFS tree mount filesystem type (ala Sun -hosts).
368
369	* (nfs_ops.c) abstracted out NFS mount code to support host_ops.
370
371	* (afs_ops.c) dfs_readlink now returns the am_node, instead of the
372	link.  This allows getattr to return the correct set of attributes
373	so keeping Ultrix happy.
374
375	* (afs_ops.c) Make certain the hostname field given to mount()
376	does not get too long - otherwise random EINVAL errors occur.
377
378	* Putting closing comments on all #endif's
379
380Sun May 13 16:07:21 1990  Jan-Simon Pendry  (jsp at achilles)
381
382	* (srvr_nfs.c) second rewrite of NFS ping algorithm.
383
384Sun Apr 29 21:12:33 1990  Jan-Simon Pendry  (jsp at achilles)
385
386	* (nfs_stubs.c) re-arranged readlink code to avoid need to
387	pre-mount a direct filesystem whenever possible.
388
389	* (host_ops.c) finally incorporated new module to support /net
390	mount point.
391
392Sat Mar 24 13:18:47 1990  Jan-Simon Pendry  (jsp at achilles)
393
394	* (nfs_stubs.c) workaround added to rename entry point to avoid
395	arguments with NFS client code.
396
397	* (srvr_nfs.c) changed the way NFS pings are done and cleaned up
398	the process for deciding when a server is up or down.  Now there
399	is just a simple time limit on a reply from the server.  The limit
400	is adjusted depending on whether the state of the server is known.
401
402	* (opts.c) fixed bug with ${var/} expansion et al.  Added ${varN}
403	N = 0..7 for use as scratch variables.
404
405	* (mntfs.c) fixed bug in dup_mntfs().
406
407Thu Jan 11 16:56:41 1990  Jan-Simon Pendry  (jsp at achilles)
408
409	* Release 5.1c.
410
411	* (amq*) has new options.  -f flushes the map cache and -m prints
412	information about mounted filesystem and fileservers.
413
414Tue Jan  2 14:44:21 1990  Jan-Simon Pendry  (jsp at achilles)
415
416	* (util.c) am_mounted() patches the path for "direct" mounted
417	filesystems - cosmetic.
418
419	* (afs_ops.c) when possible sets a small kernel attribute cache
420	timeout on the automount points.
421
422	* (nfs_stubs.c) delete() and rmdir() operations implemented.  Used
423	when a mount point is timed out so the kernel name cache gets to
424	know about the changes.  Fixes most ESTALE errors.
425
426	* (nfs_stubs.c) New do_readlink() function added.  This is used to
427	make sure that a filesystem is mounted at the time a link is read
428	in the case of "direct" mounts.  Done so that the length of the
429	link is available when the initial getattr is done on the mountpoint.
430
431	* (sfs_ops.c) Changed implementation to avoid race conditions.
432	The link target is re-arranged so that sublink points to the
433	target and fs always points at ".".
434
435	* Fixed mount flag bug on Ultrix.
436
437	* Added support from Sjoerd Mullender for Alliant FX/4 and Encore
438	Multimax.
439
440Thu Dec  7 17:55:29 1989  Jan-Simon Pendry  (jsp at achilles)
441
442	* (afs_ops.c) dfs_readlink now does a new_ttl on the node it
443	returns.
444
445	* (afs_ops.c) next_nonerror_node now implements the task after
446	which it is named.
447
448Tue Nov 28 17:20:52 1989  Jan-Simon Pendry  (jsp at achilles)
449
450	* Release 5.1b.
451
452	* (restart.c) Generates link nodes for any unrecognised filesystem
453	types and then marks them so that they are never deleted (since
454	they could never be automounted later).
455
456	* (os-*.h) Irrelevant #undef's deleted.
457
458	* (arch) Now knows about AIX on RTs.
459
460	* (amq.c) Rationalised the output.  Now only gives you what you
461	asked for.
462
463	* (am.h) New macro: FSRV_ISDOWN(fs), which checks whether a
464	fileserver is down.
465
466	* (afs_ops.c) When a mount fails due to a timeout the underlying
467	filesystem is ripped away and replaced with an error fs.  This
468	avoids the possibility of being left with a single error reference
469	to a valid mounted filesystem.
470
471Thu Nov 23 18:04:29 1989  Jan-Simon Pendry  (jsp at achilles)
472
473	* (nfs_start.c) Re-order bootstrap sequence to avoid potential
474	deadlock if restart() ends up accessing one of the automount points.
475
476	* (amq.c) Don't produce default mount output if one of the -l, -x
477	or -D options was used.
478
479	* (umount_fs.c) Add alternative unmount routine for 4.4 BSD.
480
481Mon Nov 20 16:22:50 1989  Jan-Simon Pendry  (jsp at achilles)
482
483	* (os-bsd44.h) Fixed redefinition of UMOUNT_FS.
484
485	* (info_ndbm.c) Added missing #include <sys/stat.h>.
486
487	* (mapc.c) Fixed typo in ifdef around gdbm config entry.
488
489Sat Nov 18 16:39:13 1989  Jan-Simon Pendry  (jsp at achilles)
490
491	* (util.c) If "/" is automounted, make sure it is never timed out.
492
493	* (mtab.c) Missing clock invalidation added in read_mtab (from a file).
494
495	* (mntfs.c) realloc_mntfs simplified.
496
497	* (map.c) Closed a race condition during shutdown when second and
498	subsequent duplicate mounts were deleted prematurely.
499
500	* (afs_ops.c) Duplicate mounts are now given the correct return
501	code.
502
503Fri Nov 17 18:58:18 1989  Jan-Simon Pendry  (jsp at achilles)
504
505	* 5.1 Release.
506
507Thu Nov 16 17:57:02 1989  Jan-Simon Pendry  (jsp at achilles)
508
509	* (mntfs.c) Make sure inherit mntfs structures are not cached
510	after last reference; otherwise a second reference to the
511	inherited filesystem will get stuck on the inherit rather than the
512	(now) fully mounted filesystem.
513
514	* (am.c, nfs_start.c) After forking the server, make sure the
515	parent does not exit until the automount points are mounted.  This
516	allows a clean sequence during system startup.
517
518	* Initial port to 4.4 BSD.  Several new configuration abstractions
519	were added to make this port possible.
520
521Thu Nov  9 21:42:14 1989  Jan-Simon Pendry  (jsp at achilles)
522
523	* (afs_ops.c, opts.c) Added map logging to facilitate mount map
524	debugging without needing a -DDEBUG version of Amd.
525
526	* (afs_ops.c) Make sure the length of the fs_hostname mount
527	parameter does not exceed MAXHOSTNAMESZ.
528
529Wed Nov  8 13:44:02 1989  Jan-Simon Pendry  (jsp at achilles)
530
531	* Change the message log format to indicate the severity of the
532	message to allow simpler analysis of the log file.
533
534Tue Nov  7 14:11:36 1989  Jan-Simon Pendry  (jsp at achilles)
535
536	* 5.0 Patchlevel 11.
537
538	* (os-bsd44.h) Initial guess at 4.4 BSD definitions.
539
540	* (os-aux.h) Port for Macintosh II from Julian Onions.
541
542	* (amq.c) Output formats cleaned up.  AMQ_MNTTREE is still broken
543	in amq_subr.c though.
544
545	* (afs_ops.c) If a mount timed out, for example an NFS server was
546	down at the time, it was possible for the error code to remain
547	unset thus jamming that mount node in a state from which it could
548	not recover.  Just make sure that the mf_error field gets filled
549	in when an error occurs.
550
551	* (afs_ops.c) strsplit is run over /defaults to avoid problems
552	with whitespace creeping in.
553
554Sun Nov  5 11:50:51 1989  Jan-Simon Pendry  (jsp at achilles)
555
556	* (util.c) am_mounted: Added missing initialisation of stats.s_mtime.
557
558Fri Nov  3 17:33:02 1989  Jan-Simon Pendry  (jsp at achilles)
559
560	* 5.0 Patchlevel 10.
561
562	* Changed the copyright.
563
564Thu Nov  2 17:07:53 1989  Jan-Simon Pendry  (jsp at achilles)
565
566	* 5.0 Patchlevel 9.
567
568	* (opts.c) new option syntax: == != :=
569
570	* (nfs_ops.c) Less caching of filehandles.  Now cached errors are
571	discarded after use.
572
573	* (mtab.c) now attempts to deal with a lack of open file slots (ENFILE).
574
575	* (mount_fs.c) automount entries in the mount table now have a
576	dev= entry in the same way as NFS and UFS.
577
578	* (mntfs.c) mntfs nodes are now cached after the last reference
579	and discarded <ALLOWED_MOUNT_TIME> seconds later.  This avoids
580	thrashing during a mount.
581
582	* (mapc.c) map default cache mode is now selected with
583	"mapdefault", not "default"
584
585	* (amd.tex) numerous clarifications.  Still more work required...
586
587	* (amq_subr.c) now allows the -x option of amq to operate.
588
589	* (afs_ops.c) afs_bgmount now keeps track of which filesystem
590	needed retrying and ensures that the mount node in the
591	continuation correctly points at an unmounted filesystem.  This
592	fixes a problem whereby a valid mounted filesystem could appear to
593	have failed to mount.
594
595	* Configure now gives more of a running commentary and checks
596	whether os-type and arch actually worked.
597
598	* Allow spurious ';'s in a mount location.
599
600Fri Oct 27 14:03:31 1989  Jan-Simon Pendry  (jsp at achilles)
601
602	* foo=blah changed to foo:=blah, foo==blah and foo!=blah.
603
604	* -l stderr changed to -l /dev/stderr.
605
606Thu Oct 19 15:34:28 1989  Jan-Simon Pendry  (jsp at achilles)
607
608	* 5.0 Patchlevel 6.
609
610	* LOG_INFO messages have been rationalised so that some
611	statistics, graphs and so on can be generated.
612
613	* Transaction ID's for RPC calls are now allocated by the
614	individual callers, rather than from a central pool.  This
615	decreases the load on mount daemons and NFS servers since the
616	same XID is used for retries when needed.
617
618	* Many fine details of the new data structures have been changed.
619	Some areas have been optimized.
620
621Fri Oct 13 12:31:26 1989  Jan-Simon Pendry  (jsp at achilles)
622
623	* Restart code re-implemented to work with the new data structures.
624
625	* Fine tuning applied to new NFS server modeling code.
626
627Thu Oct 12 15:57:24 1989  Jan-Simon Pendry  (jsp at achilles)
628
629	* Added ${/var} and ${var/} variable expansions.  The first gives
630	the "basename" component of the variable, the latter gives the
631	"dirname" component.  Additionally, spurious /'s are deleted after
632	the variable expansions is complete.
633
634	* Added new -C option to allow the machine's cluster name to be
635	given to amd.  ${cluster} fetches the value and can be used as
636	another selector.
637
638	* Broken the major data struct (am_node) into three layers:
639	am_node (one for each automount node), mntfs (one for each mounted
640	filesystem) and fserver (one for each file server).  Machine
641	up/down state is maintained in the fserver layer.  Filesystem
642	mount/unmount state is maintained in the mntfs layer.  This change
643	fixes the last known major problem caused by the lack of a central
644	focus for filesystem and fileserver status.  There is a dummy file
645	server layer for local filesystems (ufs, link, program, error).
646
647Tue Oct 10 11:15:42 1989  Jan-Simon Pendry  (jsp at achilles)
648
649	* 5.0 Patchlevel 5.
650
651	* (nfs_ops.c) the filehandle cache is now flushed when a
652	filesystem is unmounted.  This avoids ending up with stale
653	information if a server bounces.
654
655	* (clock.c) new module to implement callouts.  Many other
656	routines changed to use callouts instead of messing with ttl
657	fields.
658
659Sun Oct  1 17:08:20 1989  Jan-Simon Pendry  (jsp at achilles)
660
661	* 5.0 Patchlevel 3 & 4.
662
663	* Numerous cleanups.
664
665Wed Sep 13 14:30:05 1989  Jan-Simon Pendry  (jsp at achilles)
666
667	* 5.0 Patchlevel 2.
668
669	* (nfs_ops.c) portmap information is not remembered beyond the
670	basic filehandle cache interval.  That avoids problems when a new
671	portmap and/or rpc.mountd is started and the bound port changes.
672
673	* (mapc.c) cache reloads are automatically done every hour.
674
675	* Removed xlog macro in favour of plog() so that the log level
676	can be reflected through to syslog().  log() routine renamed to
677	plog() which takes an extra parameter indicating the log level.
678
679Tue Sep  5 20:00:19 1989  Jan-Simon Pendry  (jsp at achilles)
680
681	* (nfs_ops.c) when a server is known to be down, any cached file
682	handles and port mapping informaton is flushed since that may have
683	changed when it comes back up.
684
685	* (map.c) timeout no longer attempts to unmount a hung mount point.
686
687Mon Sep  4 14:49:18 1989  Jan-Simon Pendry  (jsp at achilles)
688
689	* (afs_ops.c) a mount node which timed out during mount is now
690	retained for the normal timeout interval rather than for a short
691	period.  This avoids wasting time retrying mounts from a server
692	which is down.
693
694	* (afs_ops.c) hung mounts are now detected and not used as a
695	duplicate mount - something which defeated the replacement fs
696	scheme.
697
698	* (nfs_ops.c) keepalive's now back-off when a server has gone
699	down.
700
701Thu Aug 31 21:18:35 1989  Jan-Simon Pendry  (jsp at achilles)
702
703	* 5.0 Patchlevel 1.
704
705	* Fixed several bugs which showed up in the keepalive
706	implementation when a gateway went down causing
707	a different sequence of errors than usual.
708
709Wed Aug 30 11:29:21 1989  Jan-Simon Pendry  (jsp at achilles)
710
711	* (amq.x) now uses a Sun assigned program number.
712
713	* Revision 5.0 - can now start using metaconfig.
714
715Tue Aug 29 14:36:48 1989  Jan-Simon Pendry  (jsp at achilles)
716
717	* (os-u3_0.h, os-type) now knows about DECstations (mips).
718
719	* (nfs_stubs.c) Added hooks to readlink entry point to call
720	per-fs readlink routine if it exists, otherwise old behaviour.
721
722	* (afs_ops.c) Added implementation of "type=direct".  This is
723	the same as "type=auto" but is itself the link to the
724	mount point, rather than being a directory containing a list
725	of links to mount points.
726
727Mon Aug 28 17:48:15 1989  Jan-Simon Pendry  (jsp at achilles)
728
729	* (afs_ops.c) Changed readdir to workaround a problem on
730	ultrix 3 where it seems to forget that eof has been reached.
731
732Thu Aug 24 15:17:55 1989  Jan-Simon Pendry  (jsp at achilles)
733
734	* Created "beta16".
735
736	* (afs_ops.c) /defaults is located along with every key.
737	this makes it possible to update the /defaults in
738	a map and get to use it.
739
740	* (mapc.c) added map cache synchronization support.  if
741	a file or ndbm map is updated the cache is junked so avoiding
742	things getting out of sync.
743
744Wed Aug 23 19:17:52 1989  Jan-Simon Pendry  (jsp at achilles)
745
746	* (os-u3_0.h) new file to support Ultrix 3.0
747
748	* (opts.c) allow environment variables to be accessed via
749	the same ${env} syntax used for options & selectors.
750
751Tue Aug 22 13:19:49 1989  Jan-Simon Pendry  (jsp at achilles)
752
753	* (opts.c, get_args.c) added support for kernel architecture
754	type to allow /usr/kvm to be automounted under SunOS 4.x.
755
756	* (os-xinu43.h) updated for june '89 release of MORE/bsd.
757
758	* (opts.c) fixed memory allocation problems where some strings
759	may not have been strdup'ed before they were free'ed so causing
760	the malloc arena to get into a twist.  This caused core dumps on
761	some machines and infinite loops on others.
762
763	* (*.c) clock handling is now done by a macro.  Global variable
764	clock_valid is > 0 (ie the time) when valid, 0 if invalid.
765
766	* (map.c) timeout code survived a complete rewrite and is now
767	O(n) rather than O(n^2).
768
769	* (info_hes.c) new database hooks for Hesiod nameserver.
770
771	* (get_args.c) the local sub-domain is picked up from the
772	hostname if it is not specifed with -d.  The subdomain is
773	then stripped from the hostname.
774
775	* (am.c) when a SIGTERM is received, an immediate abort
776	occurs - only the top-level automounts are unmounted; all
777	other mounts stay -- use amd -r to restart.
778
779	* (afs_ops.c) cleaned up key prefix handling.  Again updated
780	the "hostname" string passed to the kernel so that includes
781	the hostname, pid and mount point.
782
783Tue Aug  8 16:05:23 1989  Jan-Simon Pendry  (jsp at achilles)
784
785	* (nfs_ops.c) changed the way the file handle cache is managed.
786	No longer gets a race condition between something entering the
787	cache and being used and discard.
788
789Tue Jul 25 20:40:51 1989  Jan-Simon Pendry  (jsp at achilles)
790
791	* (map.c) changed fh_to_mp2 so that it does not return
792	ESTALE during shutdown.  it returns ENOENT instead which
793	avoids thrashing with the kernel.
794
795Sun Jul 23 15:06:10 1989  Jan-Simon Pendry  (jsp at achilles)
796
797	* (afs_ops.c) make sure the incoming key from the kernel
798	does not contain any characters which could cause trouble
799	during macro expansion (such as `"! etc).
800
801	* (afs_ops.c) fixed contruction of "mtab" entry.
802
803Fri Jul 21 11:01:05 1989  Jan-Simon Pendry  (jsp at achilles)
804
805	* (afs_ops.c) some changes to support the new startup
806	shutdown scheme.
807
808	* (map.c) startup and shutdown are now done using the
809	standard interfaces.  Startup is done by creating a
810	private cache map  ";root;" and then doing lookups
811	on all the names in it.  Shutdown is done by forcibly
812	timing out all the mount points including the automount
813	points.
814
815	* (info_*.c) modified to provide interface required by
816	mapc.c module.
817
818	* (mapc.c) new module to implement map caching.  Caching
819	can be controlled by an fs option.  "all" means cache
820	the entire map (if possible).  "inc" means cache things
821	incrementally.  "none" means never cache things.  Each
822	map type has a default caching mode which is used if
823	cache option "default" is used.
824
825Wed Jul 19 16:14:52 1989  Jan-Simon Pendry  (jsp at achilles)
826
827	* (sched.c) implements a general sleep/wakeup scheme and uses
828	it for sub-process handling.
829
830	* (nfs_start.c) task_notify() called from where it used to
831	be called.
832
833	* (nfs_ops.c) now implements a non-blocking rpc library.
834	Everything in nfs_ops was changed to use it.  This should
835	not be in this file and will be moved later.
836
837	* (map.c) if a mount point times out and it is deferred then
838	issue a wakeup so that it can be retried.
839
840	* (map.c) when creating a new mount point fetches the entry
841	"/defaults" from the associated map if no other options are
842	specified.
843
844	* (am.c) implements the -p (print process id) option.
845
846	* (afs_ops.c) a mount attempt now has a time-to-live of twenty
847	seconds.  if only deferred attempts are waiting after that
848	interval the kernel gets sent ETIMEDOUT.
849
850	* (afs_ops.c) the name by which the kernel knows the filesystem
851	has changed from pid%d@host to /mountpoint@host.  That looks
852	better to users who get hit by it.
853
854Fri Jul 14 18:46:16 1989  Jan-Simon Pendry  (jsp at achilles)
855
856	* (afs_ops.c) now knows about defered mounts - mounts which
857	are not in progress, not completed, and not failed.
858
859	* (sched.c) added new entry point sched_ast().  This simulates
860	a completed job.  The basic idea is to let something else return
861	to the main scheduling loop with a guarentee that it will be
862	called back when some other action has taken place.
863
864	* (nfs_ops.c) implemented a file handle cache.  The nfs_init
865	routine starts up a request for the filehandle and the mount
866	routine uses it when it arrives.
867
868Thu Jul 13 18:07:58 1989  Jan-Simon Pendry  (jsp at achilles)
869
870	* (afs_ops.c) found a race condition between an error occuring
871	and the am_node being timed out.  Fixed by updating the
872	time-to-live and keepalive counters in the node whenever
873	AMF_MOUNTING is cleared.  Also changed afs_lookuppn() so that
874	it doesn't destroy the node when it returns the error code.
875	This stops thrashing and the node is eventually timed out.
876	Now the only way a node gets deleted is by the timeout code
877	which seems more elegant.
878
879Tue Jul 11 15:36:44 1989  Jan-Simon Pendry  (jsp at achilles)
880
881	* Created "beta15".
882
883	* Fixed *all* references to "u2.2".  Some where missed in
884	the original change.  They are now u2_2.
885
886	* (mk-amd-map.c) new command.  Converts plain files into
887	ndbm databases for use by the info_ndbm module.  Hooks
888	included for future support for gdbm just as soon as I
889	can get a copy.
890
891Sun Jul  9 19:00:22 1989  Jan-Simon Pendry  (jsp at achilles)
892
893	* Created "beta14".
894
895	* (get_info.c) code to handle yp and files now split into
896	new files info_yp.c and info_file.c  New support for ndbm
897	databases is in info_ndbm.c.  A table in get_info.c controls
898	what and in which order things are searched.
899
900	* (map.c, nfs_stubs.c) better handling for hung mount points.
901	if a filehandle is passed in by the kernel which references
902	a hung node, then try to find a replacement, possibly by calling
903	lookup explicitly.
904
905	* (*.c) use new xlog(level)(message) interface
906
907Thu Jun  8 20:28:55 1989  Jan-Simon Pendry  (jsp at achilles)
908
909	* (nfs_ops.c, ufs_ops.c) when compiled with DEBUG, display
910	the fs options being used.
911
912	* (am.c) make test for root a little more polite.
913
914	* (get_args.c) update Usage message to include -r option.
915
916Wed Jun  7 16:28:51 1989  Jan-Simon Pendry  (jsp at achilles)
917
918	* (rpc_fwd.c) fwd_reply: if the recvfrom call fails because it
919	is interrupted then try again.
920
921Tue Jun  6 16:39:15 1989  Jan-Simon Pendry  (jsp at achilles)
922
923	* Created "beta12".
924
925	* (afs_ops.c) inheriting mount option list from command line
926	is now cumulative.  A -foo on the command line is prepended
927	to the default option list taken from the map.  This can be
928	used to override the ``default default'' options in opts.c.
929
930	* (get_args.c, am.c) added new -r (restart) option.  Restart of
931	mounted filesystems is only done if this option is specified.
932	[Should *not* be specified in /etc/rc.local of course. - wrong]
933
934	* (yp_master.c) make the enumeration error message more verbose
935	when debugging is enabled.
936
937	* (rpc_fwd.c) rearranged some declarations at the top.  Removed
938	a spurious call to free which was causing grief on some systems,
939	but not on Sun's.  [This problem was the reason for implementing
940	the -D mem option.]
941
942	* (opts.c) make sure opt_key and opt_path are set to a zero
943	length string unless otherwise specified.  Previously they
944	were a source of dangling pointers.
945
946	* (nfs_ops.c) make sure that the allocated nfs_private identifiers
947	are unique even when some filesystem are being restarted.  This mean
948	starting the basic allocation from 1, not zero.
949
950	* (am.h, get_args.c, util.c) added definition and implmentation of
951	a simple memory allocation trace (D_MEM).
952
953	* (afs_ops.c) afs_lookuppn: tightened up memory allocation and
954	delay string copying until last possible moment.
955
956Mon Jun  5 18:01:18 1989  Jan-Simon Pendry  (jsp at achilles)
957
958	* (Makefile.com) diffs: added new rule to generate diffs
959	between versions.
960
961	* (get_info.c) search_file: added a new dlog() to note when
962	wildcards are returned.
963
964	* (afs_ops.c) afs_lookuppn: call to init_map specifies efs as
965	the default ops structure.  If the location list only contained
966	defaults and no real mounts then this previously caused a null
967	pointer dereference.
968
969	* (map.c) last_used_map: Added new variable.  Keeps track of the
970	last used map, which may be wildly different from first_free_map.
971	This fixes bugs in several routines in this file.
972
973	* (util.c) mkdirs, rmdirs: Changed directory make/unmake.  It is
974	not possible to quickly determine how many directories need to
975	be created or deleted, so we try to make as many as possible.
976
977	* (opts.c) Added default values for rfs, rhost and fs.
978	The new defaults guarentee unique names to allow the NFS
979	keepalive stuff to work.
980
981Sun Jun  4 16:12:15 1989  Jan-Simon Pendry  (jsp at achilles)
982
983	* First draft of documentation included in the next release.
984
985	* Hooks for TFS added, though this still requires a lot of work.
986
987	* Re-implemented option handling.  Options are now allocated
988	dynamically on a per-mount basis in the continuation structure.
989
990	* Changed os type u2.2 to u2_2 to allow for regular expression
991	matching in selectors.
992
993	* Format of mount maps is now entirely different.  Instead of
994	guessing which filesystem type is being used, it is now explicitly
995	stated along with the required options.  Variable expansion is
996	done on the options and selectors are also implemented.  The
997	requested name can also contain any of the selectors.
998
999Wed May 24 15:21:39 1989  Jan-Simon Pendry  (jsp at achilles)
1000
1001	* Re-implemented NFS ping algorithm to use the new RPC forwarding
1002	system.  This allowed a large amount of nfs_ops specific code
1003	to be removed from nfs_start.c and moved to nfs_ops.c.
1004	There is still no strategy for hung file systems.  At the moment
1005	it will merely try to mount an alternative (or the same again)
1006	to the same place in the file system.
1007
1008	* Added RPC forwarding package.  This supports general RPC gatewaying
1009	over a UDP transport.  The idea is to put a packet identifier into
1010	each outgoing RPC packet and then match that up in a database when
1011	a reply comes in.  The database records the original packet identifier
1012	(so that it can be replaced), the source address for the packet and
1013	a function to call to do the forwarding.
1014
1015	* ChangeLog added between beta8 and beta9.  Should have done this sooner.
1016