"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"
"d_delete: needs to call iput() to decrement i_count, which
you get by returning 1 instead of 0.
looking at the other fs schemes (actually its pretty clear in the
nfs code too) i see that they return 1 for 'is_bad_inode()'."
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."
do --disbale-kernel-mdoule build works
====================
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.
====================
the rest of the patch
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."
#define CONFIG_SMP 1
instead of:
#define CONFIG_SMP
to fix recent Redhat kernel which used #if CONFIG_SMP instead of
#ifdef CONFIG_SMP in some kernel headers.