FIXES 17867
h_ID2Client currently returns a client struct with a shared lock. The
only caller of h_ID2Client (SRXAFS_FlushCPS) immediately calls
BoostSharedLock. This patch just goes ahead and makes h_ID2Client return
it with the write lock so we don't enter the Lock struct mutex multiple
times in a row. This also happens to remove the last reference to
BoostSharedLock in the tree.
Code ifdef'd any of AFS_MACH_ENV, AFS_GFS_ENV, AFS_DEC_ENV dies
Code ifdef'd AFS_SUN_ENV either becomes AFS_SUN5_ENV or dies as appropriate,
in the kernel only. The database servers etc are probably still buildable,
and I still have a SunOS 4.1.4 machine. ;-) But the Solaris vnops get all
SunOS 4 code nuked.
Uses of AFS_ALPHA_ENV which secretly meant OSF/1,D/UX,Tru64 become
AFS_OSF_ENV.
Bozon lock use gets its own ifdef. OSF and Solaris define it. Darwin and any
BSDs have bozon lock usage removed: note that only OSF and Solaris were
bothering to *init* the bozon lock during NewVCache. Bozon locks are for
platforms where basically we could end up deadlocking ourselves because of
how locks are handled.
Some nonsensical ifdefs removed.
Some if 0'd code removed.
Some obsolete code (hpux pre-10, for instance) removed.
This patch applies all of the work done to add persistent cache support,
cache manager debugging, and a variety of bug fixes. A full description
will be committed within doc/txt/winnotes as part of a later commit.
FIXES 17211
"lih_r now leaves the current lih_host held, and h_Releases those for which
it changed mind during h_Enumerate. It also closes the window that
ClearHostCallbacks_r opens.
The problem was: due to the leak on the h_Hold table, rx connections and
host and client structures stopped being garbage collected once the
fileserver went through GetSomeSpace_r. Only relevant for "busy" servers,
many would never even invoke this routine."
the problem with rx_PutConnection is h_FreeConnection uses the host global lock
====================
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 problem with rx_PutConnection is h_FreeConnection uses the host global lock
but it shouldn't matter (callback conn should be a client not server conn and
thus not h_FreeConnection on cleanup)
further, we should free the conns we GetConnection'd not the ones still in
the host struct at the end.
since it looks like CheckHost is using a gc'd client conn, this more or less has to be it.
====================
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.
====================
since it looks like CheckHost is using a gc'd client conn, this more or less has
to be it.
and don't deadlock.
====================
since it looks like CheckHost is using a gc'd client conn, this more or less has
to be it.
and don't deadlock.
====================
since it looks like CheckHost is using a gc'd client conn, this more or less has
to be it.
and don't deadlock.
FIXES 15169
Modify all parameters to functions which take a pointer to time_t
to actually provide a pointer to time_t instead of pointers to long,
afs_int32, afs_uint32, etc.
This is to provide compatibility with systems that use 64-bit time_t
typedefs such as the IBM compilers for AIX and the Microsoft Visual
Studio 2005 compiler.
This patch does not address any of the issues of data loss caused
by converting 64-bit time_t to 32-bit signed or unsigned values.
FIXES 4891
apply it disabled in the fileserver, but provide mech for client to suggest a particular IP address to the fileserver
====================
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.
====================
FIXES 4891
apply it disabled in the fileserver, but provide mech for client to suggest a pa
rticular IP address to the fileserver
====================
FIXES 4891
apply it disabled in the fileserver, but provide mech for client to suggest a pa
rticular IP address to the fileserver
====================
FIXES 4891
apply it disabled in the fileserver, but provide mech for client to suggest a pa
rticular IP address to the fileserver
TICKET 2618
flexelint patches for prototype handling from Joe Beuhler
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
This patch adds a bunch of missing prototypes, makes various
corrections to global prototypes, and removes global declarations that
are not needed.
One set of added prototypes is commented out because it applies to
some printf-like functions that are implemented the way it used to be
done before varargs existed, and they need to be unprototyped or the
code will fail to compile. (There are a number of functions in the
OpenAFS code that need to be converted to use varargs...)
There is one place of note in src/WINNT/afsd/fs.c where typedefs for
afs_int32 and afs_uint32 conflict with afs/stds.h. I just added a
note to that effect.
Prototypes in src/WINNT/afsd/fs.c are incorrect for Windows NT. I
don't know whether the return type involved changes from platform to
platform -- they come from .xg files.
Some prototypes are now commented out or #ifdef'd to match the code
that uses them.
Some global variables conflict between modules and have been made static.
The bufferBlock variable was of two completely different types...
In src/config/stds.h, I changed the declaration of afs_intmax_t to
reflect the fact that the Windows platform supports 64 bit integers.
This may be incorrect semantically, but I believe it is needed for the
%llx format to match afs_intmax_t arguments (for printing of inodes
mainly, I believe).
There were two different declarations for the rxkad_stats structure --
I synced them up.
- Joe
Removed the conflicting typedefs from src/WINNT/afsd/fs.c
Removed the changes to src/config/stds.h. Added declaration of
AFS_64BIT_CLIENT to src/config/NTMakefile.i386_nt40 instead.
Do not remove unused variables which are defintions of data type
values. Instead comment them out to avoid space utilization and
warnings.
This massive patch contains changes in several significant areas for Windows:
- the ability to specify the mount point to be something other than /afs
- functionality to assist debugging of the NT Services
- support for languages other than English (NTLang.bat)
- revisions to the Build system to support separate trees for src, obj,
dest and free or checked; allow any MS compiler to be used
- updates to NSIS installer build
- mutex locking added to critical locations
- updates to IS5 directory tree creation
- update to afswsNetscape_config.sh
FIXES 2498
CheckHost() sets the HOSTDELETED flag on a host, does its
touch, calls H_UNLOCK at the end of its function;
AddCallBCal1 in a different thread grabs the lock, does its
thing. Gets to GetSomeSpace_r(), which calls
h_Enumerate_r; the host in question isn't held, so
h_Enumerate_r calls h_Hold_r and h_Release_r on the host
that CheckHost() set the HOSTDELETED flag on; h_Release_r
sees the HOSTDELETED flag and calls h_TossStuff_r, poof, we
have our broken host entry for ClearHostCallbacks_r to trip
FIXES 2100
lhs cast illegal, some compilers barf, remove it.
====================
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.
====================
FIXES 2100
lhs cast illegal, some compilers barf, remove it.
this time commit the correct patch
include unified afs error support for winnt. removed dup'd code.
supports building an installer with NSIS
====================
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.
====================
include unified afs error support for winnt. removed dup'd code.
supports building an installer with NSIS
remove orphaned osi_malloc header ref
====================
more updates. make libadmin build, fix dependancies for unified_afs,
copy rxstat header out during build
====================
fix NSIS installer build paths
clean up base64 support for nt
clean up int64 support in volser
====================
more updates. make libadmin build, fix dependancies for unified_afs,
copy rxstat header out during build
FIXES 1774
thanks to nneul@umr.edu for providing a script to do this.
gnu indent 2.2.9 options:
-npro -nbad -bap -nbc -bbo -br -ce -cdw -brs -ncdb -cp1 -ncs -di2 -ndj -nfc1
-nfca -i4 -lp -npcs -nprs -psl -sc -nsob -ts8
====================
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.
====================
FIXES 1774
fix subst mistake
FIXES 1488
It adds:
- the binary version of the file version/productversion, which the MSI
engine sort of want files in MSI packages to all have. This requires
another variable to be maintained in NTMakefile.i386_nt40 (Please don't
change the value from 1,2,910,0 to 1,2,9,1 or something like that. The last
number group in the version is considered completely insignificant by some
things)
- some file typing, which I don't know if anything cares about
- Some new items in the stringfileinfo table, (InternalName and
OriginalFilename) without which explorer won't show use the version info in
constructing tooltip text.
- Actually setting ProductVersion and FileVersion to something real
- Language codes, which the MSI engine also wants
FIXES 1308
Thanks to Chaskiel Grundman for explaining what was happening:
- the connection is old and pre-existing, but has no host structure.
- 2 calls come in
- the first one enters h_GetHost_r, and h_Lookup_r returns null (but identP is
non-null, since rx keeps it around until it gc's the connection)
The first thread calls WhoAreYou, which succeeds, it then calls
InitCallBackState3 (after H_UNLOCK) note that the host has been inserted into
the hashtable
- the second thread enters h_GetHost_r, and calls rx_GetSpecific. it then
calls h_Lookup_r. h_Lookup_r will block (new host is locked), but eventually
returns the new host
- InitCallBackState3 returns, and the frees the old identP, replaces it, and
unlocks the host.
- the first thread returns from h_Lookup_r. boom.
the changes:
-call rx_GetSpecific after h_Lookup_r returns (and potentially slept)
-removes an if wrapping which always is true (since !interfValid is always
true)
-don't realloc identP if it exists
-don't free an old one by calling rx_SetSpecific either
support for V6.0 and .Net complier, compile from either NT4.0 or XP
Source and object are separated into different directories. The directory
tree would look as follows:
Base from %AFSROOT% environment variable
%AFSROOT%\src\... - all source and generated source
%AFSROOT%\obj\checked\... objects from a checked build
%AFSROOT%\obj\free\... objects from a free build
%AFSROOT%\obj\dest\checked\... DEST folder from a checked build
%AFSROOT%\obj\dest\free\.... DEST folder from a free build
Before you start the build, you must build an object tree by issuing the
following:
nmake -f NTMAKEFILE mkdir
====================
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.
====================
support for V6.0 and .Net complier, compile from either NT4.0 or XP
Source and object are separated into different directories. The directory
tree would look as follows:
make it vaguely useful. still need client side
====================
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.
====================
make it vaguely useful.
now with client side(tm)
====================
make it vaguely useful.
now with client side(tm)
====================
make it vaguely useful.
now with client side(tm)
Avoid asymmetry between rx connections and clients, such that one
points at the other but the other doesn't point at the first one.
This can sometimes happen with hosts that change addresses/ports.
if something else ends up trying to e.g. break delayed callbacks over the same
callback that we're playing with in break later callbacks, the manipulation in
CDelPtr becomes important
add warning and don't clean up if host is locked. shouldn't be able to happen
====================
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.
====================
FIXES 1294
and make it useful
the linked list code was never updated for multiple passes when we
started doing that.
====================
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 linked list code was never updated for multiple passes when we
started doing that.
move callback breaking into a separate thread
====================
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 it. somehow the original version of this was lost.
====================
the rest of it. somehow the original version of this was lost.
====================
the rest of it. somehow the original version of this was lost.
it all compiles nicely
====================
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.
====================
a little more cleanup
====================
a little more cleanup
====================
a little more cleanup
====================
a little more cleanup
i probably missed something here.
====================
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 did miss something. also, change FileEntry padding and axe useless comment
====================
try, try again
====================
once more with feeling
====================
make typing of the indexes into timeout[] match
====================
make struct CallBack a multiple of 32 bit so the weird math works again
screw it. if winnt can have generic pointers, so can we
====================
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.
====================
and cast all the pointers
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).
based on report from lha@stacken.kth.se
"identP = (struct Identity *)malloc(1);
This can't be right, there should not be an assumption how the
c-compiler will lay out code. I find it acceptable to do something like this
/* sizeof valid + offset of valid. */
i.. = malloc(sizeof(identP->valid) + (int)&(((struct Identity *)0)->valid));
But then, why not just allocate a whole identP and be happy. A afsUUID
is not that bloted (16 bytes) so I can't see why way this is
chosen. 20 bytes will probably be allocated on 32 bit platforms for
the whole struct Identity.
"
doesn't fix any problem that i can find, but results in ihandles not
having thousands of bogus references (and may fix problems if refcnt were to wrap)
deleted at that point; otherwise, the host may be deleted by
another thread between a call to h_Lookup_r and the time when
we actually get around to h_Hold'ing it.
based on report from mattiasa@e.kth.se who has the following feedback from
lha@e.kth.se:
Patch from Love to make filserver not loop on MUTEX_ENTER() in
rx_SetSpecific()
rx_call instead of rx_connection, and make CallPreamble()
type-safe by taking two arguments instead of magically
turning an rx_call into rx_connection.
to it, in the fileserver. This prevents some additional lossage
cases with poorly-connected clients.
Disable same feature for other Rx services, since they don't
need to incur extra RTT delay.
a) a freebsd client that compiles, and to a certain extent, works. Should
not be used except by people doing freebsd client development
b) configure glue for freebsd 4.3, 4.4, and 4.5
c) freebsd tfileserver support. Note that, by default, this isn't very
interesting, as the supported freebsd pthreads are just as cooperative as
LWP. if you install the linuxthreads port and swap the MT_* variables in
osconf.m4, you will get a more traditional tfileserver though. configure
glue for that will be forthcoming at some point.
d) a maybe-fix that sets sin_len in sockaddrs on platforms that have them.
(and also a fix for the AC_PROG_CC issue which affects autoconf 2.13 and 2.5x
on same conf files issue)
Currently it's possible to give StoreData negative Pos/Length/FileLength
arguments and thereby set the volume quota usage to arbitrary values.
This patch makes these values unsigned, since negative file positions
and lengths don't make sense anyway.
Currently nothing clears the CLIENTDELETED flag in hosts, so once
a client has been deleted, h_TossStuff_r() will keep getting called
with every host release. This patch clears the CLIENTDELETED flag
every time we take care of deleted clients.