[13141] in Athena Bugs
attach -h -n calls aklog
daemon@ATHENA.MIT.EDU (ghudson@MIT.EDU)
Fri Jan 27 14:32:44 1995
From: ghudson@MIT.EDU
Date: Fri, 27 Jan 1995 14:32:05 -0500
To: bugs@MIT.EDU, rel-eng@MIT.EDU
Cc: netbsd-dev@MIT.EDU
My login is very slow on Athena workstations because I attach eight
lockers. Even though I use the attach options -h -n, this results in
eight separate invocations of aklog. This is especially frustrating
when there are serious AFS slowdowns and each aklog takes several
minutes to complete.
I have included below a patch to afs.c in the attach sources which
prevents this behavior. Unfortunately, this modifies the external
behavior of attach with regard to what it writes in
/usr/tmp/attachtab: attach -h -n will write a host address of 0.0.0.0
in /usr/tmp/attachtab. For lockers marked 'r' in hesiod, attach does
this already, so I think the host address is unnecessary for AFS
lockers.
Before I get to the afs.c patch, here are the attachtab entries
produced by the old attach on a Decstation:
A1 0+AFS mime localhost /afs/athena.mit.edu/project/mime 18.179.0.28 0 /mit/mime 0 3622 0 w
A1 0+AFS windowmanagers localhost /afs/athena.mit.edu/project/windowmanagers 0.0.0.0 0 /mit/windowmanagers 0 3622 0 r
These are the same entries as are produced by the patched version
unless you use -h -n, in which case you get:
A1 0+AFS mime localhost /afs/athena.mit.edu/project/mime 0.0.0.0 0 /mit/mime 0 3622 0 w
A1 0+AFS windowmanagers localhost /afs/athena.mit.edu/project/windowmanagers 0.0.0.0 0 /mit/windowmanagers 0 3622 0 r
Since the host address of 0.0.0.0 doesn't cause any problems for the
windowmanagers locker, it shouldn't cause any problems for the mime
locker. I would like to see this patch incorporated into the upcoming
release, since it would speed up my logins by a factor of two or so.
Here is the patch:
*** afs.c.old Fri Jan 27 14:30:23 1995
--- afs.c Fri Jan 27 14:31:25 1995
***************
*** 52,61 ****
if (use_zephyr)
afs_auth_flags |= AFSAUTH_DOZEPHYR;
!
! if (afs_auth_internal(at->hesiodname, at->hostdir,
! at->hostaddr, afs_auth_flags) == FAILURE)
! return(FAILURE);
if (debug_flag)
printf("lstating %s...\n", at->hostdir);
--- 52,63 ----
if (use_zephyr)
afs_auth_flags |= AFSAUTH_DOZEPHYR;
!
! if (afs_auth_flags & (AFSAUTH_DOAUTH | AFSAUTH_DOZEPHYR)) {
! if (afs_auth_internal(at->hesiodname, at->hostdir,
! at->hostaddr, afs_auth_flags) == FAILURE)
! return(FAILURE);
! }
if (debug_flag)
printf("lstating %s...\n", at->hostdir);