LICENSE IPL10
the lock_fd field of DiskPartition[64] is a file descriptor.
On Windows this is a HANDLE and on *nix platforms an int.
OpenAFS uses the FD_t type to provide platform specific type
info for file descriptors. Use it for the lock_fd field and
the salvageLock in ObtainsSalvageLock().
Finally, the on the wire diskPartition[64] struct in volser/volint.xg
also contains a lock_fd field. This is an on the wire field and
must be left at a fixed width of 32-bits. Since a file descriptor
is not portable across machines we truncate the 64-bit HANDLE value
to fit in the 32-bit lock_fd field when necessary.
LICENSE IPL10
GetHandler() sets up a fdset and returns the max socket fd
which is used with select(). Windows ignores the numfd param
(first param) of select() and therefore computing the max fd
value is meaningless. We can avoid a number of casts by
not attempting to treat this value as osi_socket.
LICENSE IPL10
FIXES 117470
Under certain demand salvage scenarios, it is possible for a stale header
to remain cached with the needsSalvaged flag asserted. Although this will
not affect clients accessing the volume over afsint, it is an issue for
volser clients. VAttachVolumeByName in volser will always attempt to pull
the header over FSSYNC before doing a disk read, under the assumption that
a cached entry in the fileserver will be more current than what is on
disk. This patch causes the fileserver to aggresively invalidate disk
header cache entries when a salvage is in-progress.
LICENSE IPL10
FIXES 107767
avoid corrupting length in vnodeds when salvaging directories.
avoid tag reuse leaving data behind (not verified)
avoid not marking something busy during salvage
LICENSE IPL10
VOL_STATE_SALVSYNC_REQ is a mutally exclusive state. don't allow other things
to attempt to trigger that state when an exclusive state is already present
LICENSE MIT
Add code signing with signtool.exe to the build process.
If all three of the required CODESIGN_xxxx environment
variables are defined, signtool will be used to sign each
exe, dll, and installer as they are built.
The three environment variables are:
CODESIGN_DESC = <description of application>
CODESIGN_TIMESTAMP = <url of certificate authority timestamp server>
CODESIGN_URL = <end user help URL>
The default signing certificate is the one that will be used by
signtool. If these environment variables are not defined, code
signing will be skipped.
LICENSE IPL10
patch based on work from shadow@dementia.org
the idea is to preclude multiple copies of a volume replica on a server,
as there's nothing to indicate which copy is correct and you can end up serving
stale data when you think you've just released and are serving something good
LICENSE BSD
this will dump the current dafs vlru state on kill -XCPU (just as we dump other fileserver state)
that state is
VLRU is a garbage collection facility which automatically offlines
volumes in the background. The purpose of this facility is to
proactively offline infrequently used volumes to improve shutdown and
salvage times. The process of offlining a volume from the "attached"
state to the "pre-attached" state is called soft detachment.
VLRU works in a manner similar to a generational garbage collector.
There are five queues on which volumes can reside: new, intermediate,
old, held, and candidate:
held:
queue for volumes which are administratively barred from VLRU activity
candidate:
queue for volumes which have not been accessed recently, and are thus
candidates for soft detachment
new, intermediate, old:
generational queues for active volumes; state transitions controlled by
inactivity timers.
State transition timeouts are as follows:
candidate->new activity present
new->candidate (1*vlruthresh) minutes since last transition; no activity
new->mid (2*vlruthresh) minutes since last transition; activity
present
mid->old (4*vlruthresh) minutes since last transition; activity
present
old->mid (2*vlruthresh) minutes since last transition; no activity
mid->new (1*vlruthresh) minutes since last transition; no activity
LICENSE IPL10
keep accurate tabs on whether a volume is "in use" so we don't end up with volume state that's nonsensical.
====================
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.
====================
LICENSE IPL10
keep accurate tabs on whether a volume is "in use" so we don't end up with volum
e state that's nonsensical.
====================
LICENSE IPL10
keep accurate tabs on whether a volume is "in use" so we don't end up with volum
e state that's nonsensical.