This patch adds support for building OpenAFS user-mode code on SunOS 4.
It does not include libafs, ulibafs, or any code that needs to understand
the filesystem layout (so, no vfsck, and while the salvager will be built,
it won't work).
Allow users with admin bits to store different user/group IDs
along with a StoreData call; they can already do so anyway by
using StoreStatus. Fixes a spurious permission denied error
with arla clients.
hold the dcache lock only briefly; instead put dcache entries to be junked
onto a free list, by unhashing them, then grab the dcache lock, junk them,
and release it.
avoid potential race for shrink_dcache_parent/d_drop
smbfs and nfs do equivalent.
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
avoid potential race for shrink_dcache_parent/d_drop
smbfs and nfs do equivalent.
slight rework to avoid holding glock in a way which could deadlock us
Garry Zacheiss [Mon, 19 Aug 2002 19:53:34 +0000 (19:53 +0000)]
Don't return ELOOP when crossing a mountpoint boundary from a BK volume to
a BK volume. find treats it as a fatal error, and it's annoying not to be
able to naively use find to recurse through a volume with its backup volume
mounted. Never noticed this before because we used to ignore this return
value. Return ENODEV instead.
An unintentional change accidentally leaked out when the
rx-avoid-using-newproc-on-solaris-20020812 delta was checked
in. Undo it, since it breaks things.
Second attempt at avoiding the use of newproc() on Solaris.
This time, use thread_create to spawn a kernel thread, and
use a dummy packet to wake up the listener during shutdown.
Set the maxfilesize rlimit to infinity while writing to cache files
to avoid potential truncation if the user's rlimit is too low. This
bug likely also exists in AIX, DARWIN, DUX, FBSD, HPUX and NBSD, but
surprisingly IRIX got this right.
fix-fakestat-support-for-hardlinks-20020731 made afs_vnop_link.c
not compile under Sun's cc, since it tried to take the address of
a register variable. Don't declare the arguments as register.
Support empty CellServDB entries like arla; this is useful to
tell dynroot about the existence of a cell without hard-coding
the server list (it will be fetched from AFSDB).
Verify that afs_GetCellByIndex() returns a valid cell -- it might
be NULL if afs_NewCell() aborted partway through, which could be
the case of the CellServDB file has a typo.
You need to specify "refresh_token" the second time you call it to prevent
it from getting a second PAG and making your first token useless.
Or, you can just use it once to authenticate to a cell other than what's
in /usr/vice/etc/ThisCell. Not specifying the "cell" argument causes the
expected behavior of authenticating against the local cell."
"The multithreaded butc (src/tbutc/butc) includes bucoord/status.o, which is
compiled together with the other bucoord stuff without MT_CFLAGS and hence
without AFS_PTHREAD_ENV defined. Alas, it uses ObtainWriteLock and other
macros out of lock.h which *are* sensitive to AFS_PTHREAD_ENV. Consequently,
butc can hang trying to acquire the statusQueueLock when dumping volumes, in
particular if 'backup status' commands are issued frequently.
A proper fix would probably be to push some of those macros out of lock.h and
make them subroutines in lock.c.
A quick fix is ensuring status.c gets recompiled in tbutc/Makefile.in"
This patch will fix the "freebsd can't read files > 1 chunk" problem. It
will almost certainly not fix the "cache files get the bootloader written
into them" problem, but there is a miniscule chance:
"cleanup osi_sleep.c to remove some additional races. this patches
removes AFS_GLOBAL_SUNLOCK and just uses that case to handle both
smp and non smp cases. osi_TimedSleep always sleeps atleast 1 hz.
(it also always sleeps interruptibly -- you might get some extra
loops but this is better than the load average running away)
sleep_on's are replaced with the more appropriate add_waitq/schedule
sequence. getevent is called after addevent since there is no
danger of GLOCK dropping. getevent/addevent isnt re-merged since
osi_Wakeup doesnt create entries in the event table."
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
I'm told that after we introduce ptserver nested groups we can expect to
see periodic pauses in ubik operations, and this fixes the problem. if it
happens, we can start with the UBIK_PAUSE code and go from there
"the attached patch 'fixes', in my opinion, in osi_alloc. objects <=
AFS_SMALLOCSIZ are alloced with kmalloc, other vmalloc. if kmalloc
fails it doesnt fail over to vmalloc. TASK_RUNNING is set after
schedule. it doesnt drop the GLOCK. i moved the allocator init
later so that it doesnt need to toggle the semaphore just before
going to linux_alloc."