LICENSE IPL10
FIXES 84778
* Vnode package concurrency model was overhauled. Unlike the old model,
where concurrency was controlled via reader/writer locks, the new model
uses a per-vnode finite state automata.
* add several new volume states to deal with volume vnode list operations
* a new FSSYNC command code was added to allow volume utilities to close
out a volume operation without causing the fileserver to mount the volume
* a new FSSYNC command code was added to allow volume utilities to
transition a volume into a hard error state
* the salvageserver has been modified to keep volume group partition
path data coherent with the fileserver (like many other parts of the
volume package, this code assumes all members of the group are stored on
the same vice partition)
* make salvageserver correctly handle volume state when a child worker
process terminates abnormally
* update volume pre-attachment code to deal with move volumes across
partitions on the same server
* add volume state sanity checks to more volume package interfaces
* original vos online patch introduced a race condition; rearchitect vos
online/offline to eliminate race condition, and reduce i/o load caused
by operation
* unify duplicate code in volserver related to servicing vos examine and
vos listvol requests
* add doxygen formatted comment blocks to numerous volume package elements
* various updates to fssync-debug to allow dumping vnode state, and
updates to deal with added volume and vnode states
* several 1.5-specific fixes related to fssync and salvsync
LICENSE MIT
Modify the search order for determining the location of CellServDB
and other client configuration files.
1. AFSCONF environment variable
2. registry setting
3. NEW - use All Users\AppData\OpenAFS\Client only if CellServDB exists
4. use Program Files\OpenAFS\Client
same deal as purge. a transaction on the volume outstanding holds it. we don't need to preclude all access
====================
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.
====================
same deal as purge. a transaction on the volume outstanding holds it. we don't n
eed to preclude all access
====================
same deal as purge. a transaction on the volume outstanding holds it. we don't n
eed to preclude all access
The salvager on Windows was not being built properly. The fssync-debug.c
main() was being used instead of the salvager.c main(). Remove
fssync-debug.obj from the library and fixup the includes and global
variable declarations.
FIXES 43332
Some sites expect single-threaded volume attaches to happen in a specific
order. The parallel attach patch also changed the attach order for sites
not specifying -vattachpar.
When using the install-sh that ships with the source tree, Autoconf
substitutes in a relative path just to be annoying. Define the INSTALL
variables in each individual Makefile so that they find the proper file.
Remove the definitions from Makefile.config so that no one will
accidentally get the wrong ones.
Take advantage of the new platform infrastructure to move fs_conv_sol26 out
of the vol directory and remove the annoying Autoconf support for
optionally build it in favor of the platform support. We no longer care
about upgrading inode file servers on DUX, so make fs_conv_DUX4 go away.
Delete pinstall and convert the entire tree to use the install program
found by configure (falling back on install-sh in the local tree). This
means that we have to pre-create directories with install -d. Also redo
the install and dest rules to be lists of install rules rather than
dependencies driving separate make rules so that running make install will
always update the target directory with the current code, even if there are
files in the install area that are newer.
Stop installing libafssetpag; we're about to kill it in favor of a
different library. Remove some djgpp rules.
Fix syntax error (missing braces)
Fix include file ordering
Don't declare *tmpdir extern, we're initializing it here (even though
there's no reason to)
Fix OnlyOneVolume args to match proto
64-bit time_t pointer update
====================
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.
====================
correct a type for consistency
====================
corrections to the dafs delta to allow compilation on Windows
64-bit type safety changes required for successful compilation
on Windows 64-bit systems with the VS 2005 compiler
====================
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.
====================
more corrections for use of 64-bit types on Windows
====================
64-bit type safety changes required for successful compilation
on Windows 64-bit systems with the VS 2005 compiler
====================
64-bit type safety changes required for successful compilation
on Windows 64-bit systems with the VS 2005 compiler
====================
64-bit type safety changes required for successful compilation
on Windows 64-bit systems with the VS 2005 compiler
====================
64-bit type safety changes required for successful compilation
on Windows 64-bit systems with the VS 2005 compiler
====================
64-bit type safety changes required for successful compilation
on Windows 64-bit systems with the VS 2005 compiler
====================
64-bit type safety changes required for successful compilation
on Windows 64-bit systems with the VS 2005 compiler
====================
64-bit type safety changes required for successful compilation
on Windows 64-bit systems with the VS 2005 compiler
====================
64-bit type safety changes required for successful compilation
on Windows 64-bit systems with the VS 2005 compiler
FIXES 18349
add a volume update counter. danger will robinson. see ticket for details.
====================
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.
====================
add configure gunk
====================
add configure gunk
====================
make this happy in libadmin on e.g. solaris
====================
make this work on Windows
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.
FIXES 16765
All of AFSVolListOneVolume, AFSVolXListOneVolume, AFSVolListVolumes,
AFSVolXListVolumes currrently attach each volume to be listed with
V_READONLY. This makes the fileserver update and sync the volume header
before releasing the volume to the volserver. The result is that volume
list operations are slow, and generate lots of fileserver load, as Jimmy
pointed out during his talk this afternoon.
The attached patch introduces a new attach mode, V_PEEK, which is like a
cross between V_READONLY and V_SECRETLY. It can be used for read-only
operations on the volume header, where it is not necessary to inform the
fileserver that the volume is being accessed. The patch also changes
the above-named RPC's to use the new mode.
When you have a 64bit big endian machine with a 64bit off_t in the stat
the salvager won't work.
Malloc takes an "unsigned long" and a implicit cast will be almost
always zero :-).
Add trailing semicolons to _LOCK and _UNLOCK macros and re-indent.
This should've been in fix-indent-bug-with-lock-macros-20030729
but somehow it slipped by and I've only found it now.
Make sure that we do not alter the FD_SETSIZE on Windows.
On Windows this is an array of FD_SETSIZE. FD_SETSIZE does
not define the maximum socket handle value.
to deal simply with /usr/include/linux potentially having 2.6 kernel headers
in newer linuxes. given that we might not have ext2 as root, this check
probably wasn't sufficient anyway.
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 patch covers bugs found by running flexelint on
the CVS code on Windows NT.
- incorrect enum used in al_creds.cpp and various other files
- use of local after it goes out of scope in al_wizard.cpp
- uninitialized class members in afsclass/*
- cm_config.c looks like it has code commented out accidentally
- useless statement in alert.cpp
- no default case handling in problems.cpp
- strange use of & on booleans in set_clone.cpp
- fgets() and fclose() on closed stream in cellconfig.c
- memory leak in cellconfig.c
- *scanf into variables of unknown length in cellconfig.c
- incorrect pointer passed to getAFSServer() in cellconfig.c
- possible buffer overflows in userok.c
- address of array in bos.c
- too many arguments for printf() in commands.c
- return code not saved in bucoord/main.c
- bad types for argv arrays in bucoord/main.c
- probably incorrect initializer list in ol_verify.c
- extra argument to TLog() in lwps.c
- memory leak in cmd/cmd.c
- lack of typecast on malloc() in a couple files
- lower-case L for long constant in touch.c (is it a 1 or an l...)
- parentheses nesting error in util_cr.c
- apparently invalid case fall-through in util_cr.c
- various memory leaks in util_cr.c
- macro missing parens in crypt.c
- macro missing parens in quad_cksum.c
- null pointer deref in kpasswd.c (CVS work in progress?)
- Print_bos_ProcessState_p() code does not look correct
- extra argument to printf() in kas.c
- typo in vsprocs.c
- macro missing parens in iomgr.c
- address of array in threadname.c
- storing result of getch() in char type in waitkey.c (may not match EOF constant)
- storing pointer to local car in global in ptserver.c (benign -- it is in main())
- address of array in rx_lwp.c
- macro missing parens in rx_packet.h
- impossible == (signed vs. unsigned?) in rxdebug.c
- bogus constants in xdr.c and xdr_array.c (possible security implications?)
- incorrect test of fd for open file in update/server.c
- dangerous unparenthesized macro in get_krbrlm.c
- buffer overrun in regex.c
- missing comma causes string concat and bad array init in vlclient.c
- comparison of string < 0 in ntops.c
- default case has no code in vos.c
--
Joe Buehler
>>>>
Comments: Several comments for FIXME left in the code - unaddressed
This patch addresses a number of problems with printf-like functions.
Most of them are %x formats applied to pointers (which could be a
problem depending on the architecture I would assume). There is a
%p format for pointers on many machines but I don't know if it
applies to all supported OpenAFS platforms so I didn't go that route.
There is a buffer overflow fix to ktime.c
There are a couple places where incorrect format characters were used.
One call had two arguments swapped.
Other fixes include the use of PrintInode() and %s formats for
printing inode numbers. The code was inconsistent in this regard -- sometimes
PrintInode() was used, sometimes it was side-stepped.
There is one place where a local shadowed another variable, so I renamed
the local.
The last segment points out that an fdset need not be anything printable
with an integer format.
--
Joe Buehler
Comments - The fdset comment relates to a WinSock only file on which
the size is a pointer to int. Modified the source to use a %p instead
of %x as it is supported on Windows.
Added an assert(p != NULL) to src/rx/rx_packet.c
This patch mainly makes explicit some initializations that were implicit.
There are several places where it looks like the missing initialization
may be a bug, and I have inserted comments to that effect in the
relevant patches. Someone needs to look at them and supply
whatever is missing (if anything is).
In make_keyperm.c, an array was sized too large.
--
Joe Buehler
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 2518
namei_dec now logs if you have open ihandles when you unlink a file
====================
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 2518
flush all dir buffers we have cached when rewriting a volume from a restore
avoids holding an ihandle which has an open fdhandle for an unlinked file
====================
FIXES 2518
remove logging code for now. it appears to trigger on some possibly legitimate operations.
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
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:
in rx_pthread.c the
++rxi_pthread_hinum;
has to be protected by the rx_stats_mutex in all three cases. In the file I
attached in the openafs-devel article the last one was accidentally
unprotected.
the FSYNC_sync thread (fssync.c) needs needs to be handled as well.
log info in event of assert
====================
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.
====================
same change for IH_DEC
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.