Simon Wilkinson [Fri, 15 Feb 2013 16:05:33 +0000 (16:05 +0000)]
rxgen: Fix NULL pointer dereference
Avoid a NULL pointer dereference if strchr doesn't find any occurence
of '*' in the string. Whilst we handle the not found case when inserting
a mid string terminator, we don't handle it when restoring the string to
its previous value.
Simon Wilkinson [Fri, 15 Feb 2013 11:55:37 +0000 (11:55 +0000)]
Fix incorrect sizeof() arguments in allocations
In a number of places we have
struct X *val;
val = malloc(sizeof(struct Y));
If sizeof(struct Y) < sizeof(struct X) this is obviously dangerous,
but it is incorrect regardless of the relative sizes of the
structures. Fix all of the occurences of this that clang points out
to us.
Simon Wilkinson [Fri, 15 Feb 2013 16:23:16 +0000 (16:23 +0000)]
aklog: Don't reference freed node whilst deleting
Because deletion is implemented using a for loop, the step of the
loop that moves us to the next node references freed memory when
we've deleted an element. Fix this by just shortcircuiting the
return from the function so we immediately exit.
Simon Wilkinson [Tue, 19 Feb 2013 14:41:26 +0000 (14:41 +0000)]
vos: Remove unused 'done' loop variable
In SendFile we break at the same time as setting the done flag,
so its value is never checked. Just remove it as it is redundant
with the current loop logic.
Simon Wilkinson [Fri, 15 Feb 2013 22:34:36 +0000 (22:34 +0000)]
libadmin: Don't try to release garbage connection
In bos_ServerOpen, initalise the contents of bos_server structure
to 0 using calloc, so that if we jump to the error handling stuff
before they are assigned real values we don't end up trying to
release garbage.
Simon Wilkinson [Tue, 12 Feb 2013 14:07:10 +0000 (14:07 +0000)]
usd: Can't call usd_FileStandard* with NULL
It doesn't make sense to call usd_FileStandard{Input,Output} with
a NULL usd_handle_t (and doing so would crash later in the
function), so don't check for attempts to do so.
Simon Wilkinson [Tue, 12 Feb 2013 13:15:16 +0000 (13:15 +0000)]
vlserver: bulkaddrs are unsigned ints
bulkaddrs_val is a pointer to an array of unsigned ints, not to
an array of ints. Fix the sizeof() used in the call to malloc to silence
a clang warning.
Simon Wilkinson [Tue, 12 Feb 2013 13:12:47 +0000 (13:12 +0000)]
ptserver: Simplify malloc assignment to shut up clang
Using a temporary variable of type (char *) to store the results
of malloc and realloc, and then casting the tmp variable to the
real type causes clang-analyzer to complain. Just simplify this
code by always using the real type in order to shut it up.
Simon Wilkinson [Fri, 15 Feb 2013 17:12:45 +0000 (17:12 +0000)]
viced: Avoid clang errors with modeBits
The modeBits element of the VnodeDiskObject structure is defined as
a 12 bit wide bitfield. This causes clang some problems when doing
integer arithmetic, as it appears to the compiler that the field is
being overflowed. For example...
targetptr->disk.modeBits &= ~04000;
Produces the error:
implicit truncation from 'int' to bitfield changes value
from -2049 to 2047
Marc Dionne suggested changing this to
targetptr->disk.modeBits = targetptr->disk.modeBits & ~04000;
Simon Wilkinson [Fri, 15 Feb 2013 17:08:45 +0000 (17:08 +0000)]
Fix warnings-as-errors for clang
It seems like some versions of clang have a problem with using
pragmas to stop particular warnings being converted to errors with
-Werror. These compilers require that the warning be ignored completely
in order to suppress it.
Make the necessary changes to afsd and bozo, and update README.WARNINGS
to note the problem.
Andrew Deason [Mon, 18 Feb 2013 01:34:06 +0000 (19:34 -0600)]
rx: Assert call error for RXS_PreparePacket error
If we've received an error from the underlying security class, we must
not try to send the given packet, or we risk security issues. We
currently achieve this by setting an error on the connection. It is
slightly indirect in how this yields an error on this specific call,
and so it may not be immediately clear, but doing so is critical. If
somehow the call does not have an error by the end of this, we cannot
proceed as this is an error condition we do not handle. So, assert.
Andrew Deason [Mon, 14 Jan 2013 18:45:04 +0000 (12:45 -0600)]
rx: Honor RXS_PreparePacket errors
rxi_PrepareSendPacket calls RXS_PreparePacket to allow the security
class to modify the given packet appropriately (to be undone by
CheckPacket on the other endpoint). However, currently
rxi_PrepareSendPacket ignores all errors generated by
RXS_PreparePacket, and processing continues as if there was no error.
For rxkad, an error often results in the given packet being untouched.
This means that the security checksum is not calculated, and thus not
populated in the packet, and for encrypted connections means that the
packet contents are not encrypted.
This occurs for any error generated by the security class
PreparePacket routine. For rxkad, the most common error is probably
RXKADEXPIRED, though some other internal errors are possible as well.
This behavior has a few effects for rxkad:
1. When any error is generated by PreparePacket, the other endpoint
generally bails out with the error RXKADSEALEDINCON, since the
security checksum of the packet is 0, which does not match what the
checksum should be. This results in error messages like 'rxk: sealed
data inconsistent'. This can be very confusing if the actual error
is, say, just that the given credentials have expired.
2. For connections requiring encryption (rxkad_crypt), an error from
PreparePacket means that the packet payload is sent in the clear.
This can happen for about a window size's worth of packets.
3. If a client ignores errors/inconsistencies with the checksum and
encryption, etc, they can keep reading data for the call forever,
even after their credentials have expired.
To fix this, make an error from RXS_PreparePacket cause a connection
error for the given connection, and immediately send a connection
abort. No further error checking should be necessary for the callers
of rxi_PrepareSendPacket, since they already check for call/conn
errors before sending any actual packets.
Marc Dionne [Sun, 17 Feb 2013 18:29:38 +0000 (13:29 -0500)]
tests: Improve failure mode for unresolvable hostname
In the case of a host where gethostbyname is unable to resolve
the hostname, afstest_BuildTestConfig() may return NULL which
can cause several tests to crash.
Add a common function to look out for this condition and use it where
appropriate. When it occurs, the current module is skipped and
the user gets an error message that indicates the configuration
problem.
Jeffrey Altman [Thu, 14 Feb 2013 19:43:58 +0000 (14:43 -0500)]
Windows: Ensure pResultCB exists before Authentication
When processing requests from the redirector it is possible for
the ResultCB to not be allocated. This can occur either due to
an out of memory condition in a synchronous request or due to
an asynchronous extents or byte range lock request.
Move the assignment of the Authenticated state after the allocation
of the ResultCB from the stack in case of out of memory conditions.
Jeffrey Altman [Thu, 14 Feb 2013 14:26:16 +0000 (09:26 -0500)]
Windows: Unique file ID is per volume
The unique file ID returned as part of the BY_HANDLE_FILE_INFORMATION
data structure obtained via GetFileInformationByHandle() is only
guarranteed to be unique within the volume where volume uniqueness is
determined by the volume's serial number.
It therefore doesn't make sense to return the volume id as part of
FILE_INTERNAL_INFORMATION IndexNumber. Instead return Vnode and
Unique as that is what ensures uniqueness within an existing AFS
volume.
Unfortunately, {VolId, Vnode, Unique} does not guarantee uniqueness
for when multiple cells are in use.
Jeffrey Altman [Thu, 7 Feb 2013 21:53:45 +0000 (16:53 -0500)]
Windows: RXAFS_BulkStat failures
The RXAFS_BulkStat RPC is quite brain dead. The client requests
status information on up to AFSCBMAX FIDs. The file server replies
success only if all of the client credentials provide access to
all of the requested FIDs. If status info cannot be provided
for any one of the FIDs, the error code of the failure is returned
with no context as to which FID failed.
To simplify the logic within the cache manager a new local error
code, CM_ERROR_BULKSTAT_FAILURE is introduced to replace whatever
error was received from the file server. This error is returned
by cm_TryBulkStat and cm_TryBulkStatRPC. The caller of either of
those functions should interpret the error to mean that the current
user context cannot be used to perform a bulkstat operation against
the provided cm_scache directory. Instead, individual RXAFS_FetchStatus
operations must be performed.
This patchset implements such error handling for both the SMB and
RDR interfaces. This change permits the Windows cache manager to
properly enumerate a directory for which the user only has list
permission and cannot read the status info for files and symlinks.
Jeffrey Altman [Tue, 12 Feb 2013 21:32:18 +0000 (16:32 -0500)]
Windows: cm_BPlusDirNextEnumEntry return all errors
Return all entries in the directory enumeration regardless of any
errors returned from cm_BPlusDirEnumBulkStatNext(). Set the error
code in the returned cm_direnum_entry_t.errorCode field so that
the caller can determine how the error should be handled on a
per entry basis.
Jeffrey Altman [Wed, 13 Feb 2013 19:04:28 +0000 (14:04 -0500)]
Windows: Add Cell name to AFSProcessRequest parameters
Knowing the cell name for the request can be useful to the file
system driver which otherwise does not have access to a conversion
from FileID.CellID to Cell name.
Jeffrey Altman [Thu, 14 Feb 2013 02:53:46 +0000 (21:53 -0500)]
Windows: Add Cell to FS Volume Information Label
Add the Cell name to the VolumeLabel field of the
FILE_FS_VOLUME_INFORMATION structure. This permits "cell#volume" to be
displayed by cmd.exe's DIR command and other applications that call the
GetVolumeInformation() or GetVolumeInformationByHandle() Win32 APIs.
Andrew Deason [Fri, 8 Feb 2013 23:24:28 +0000 (17:24 -0600)]
afs: Avoid SetupVolume panic
Currently SetupVolume panics if it cannot successfully read a
volumeinfo entry from disk. Try to return an error instead, so we
don't panic the machine.
Andrew Deason [Fri, 8 Feb 2013 23:26:32 +0000 (17:26 -0600)]
afs: Move SetupVolume tv initialization after loop
The fields in tv are not used by the loop looking for the given volume
on disk. If we wait until after that loop to initialize the fields in
tv, it is easier to handle errors encountered in the loop.
Marc Dionne [Mon, 11 Feb 2013 23:49:21 +0000 (18:49 -0500)]
Linux: Add missing semi-colon
Add a missing semi-colon in the error case when missing symbols
are detected. The effect is strictly cosmetic - a few additional
error messages would follow the "undefined symbols" error.
Jeffrey Altman [Wed, 6 Feb 2013 16:58:55 +0000 (11:58 -0500)]
Windows: Do not pass relative paths to redirector
RDR_SetInitParams provides two paths to the redirector, the AFSCache
file path and the path of the %TEMP% environment variable. If either
of these paths are relative paths and not absolute (or full) paths,
the redirector and the service will interpret them differently.
Ensure that the full paths are delivered to the redirector.
Jeffrey Altman [Mon, 11 Feb 2013 21:40:36 +0000 (16:40 -0500)]
Windows: Do not double increment cm_data.currentCells
During cm_cell generation the cm_data.currentCells value was
incremented twice. As a result cm_currentCells did not equal the
number of cm_cell objects allocated. Upon restart the AFSCache
contents would be discarded.
Jeffrey Altman [Fri, 8 Feb 2013 19:17:12 +0000 (14:17 -0500)]
Windows: Move Trace Stmts from FILE to CLEANUP
Relabel trace statements in AFSRemoveDirNodeFromParent,
AFSRemoveNameEntry, AFSDeleteDirEntry, and AFSRemoveFcb from the
FILE subsystem to the CLEANUP subsystem. This assists in reducing
the noise when attempting to watch the file system requests that
are received by the afs redirector.
AFSLocateNameEntry previously accepted ParentDirectoryCB as an IN/OUT
parameter in which a reference count was passed in but a reference
count was not passed back out. The DirectoryCB parameter is an OUT
parameter for which a reference count should be returned on success.
This patchset simplifies the logic. ParentDirectoryCB is IN only
and OutParentDirectoryCB and DirectoryCB are out only. AFSLocateNameEntry
never releases a reference count provided by the caller and it always
returns OutParentDirectoryCB and DirectoryCB with a new reference count
unless they are NULL. It is the callers responsibility to determine if
ParentDirectoryCB has changed and to release all of the references.
Jeffrey Altman [Fri, 8 Feb 2013 22:28:09 +0000 (17:28 -0500)]
Windows: AFSLocateNameEntry separate VolumeCB In/Out
Tracking the VolumeCB references within AFSLocateNameEntry has
proven to be very error prone. When the VolumeCB parameter is
an in/out parameter the caller cannot reliably determine whether
or not AFSLocateNameEntry replaced the updated the pointer and
whether it properly released the references. This patchset
changes the interface so that VolumeCB and ParentDirectoryCB
have separate in and out parameters. The caller is now responsible
for tracking its own Volume reference counts and AFSLocateNameEntry
obtains its own which will either be returned to the caller as a
non-NULL OutVolumeCB or released.
This patchset turns ParentDirectoryCB into an IN only parameter
and adds OutParentDirectoryCB as a dedicated OUT parameter. However,
it does not alter any associated reference count logic. That will
be implemented in a subsequent patchset.
Jeffrey Altman [Thu, 7 Feb 2013 03:44:44 +0000 (22:44 -0500)]
Windows: GetVolumeInfo cell name
The service was supposed to provide the redirector the cell name
as part of the AFSVolumeInfoCB response from RDR_GetVolumeInfo.
Add a new field to store it and populate it.
Marc Dionne [Mon, 28 Jan 2013 01:52:39 +0000 (20:52 -0500)]
Linux: Detect undefined symbols in kernel modules
Undefined symbols in the kernel modules are not currently detected
at build time. As a result, buildbot may indicate success while
the resulting kernel modules are unusable.
In the kernel build process, modpost warns about missing symbols
but does not return an error in the case of external modules.
Detect these warnings and cause the libafs build to fail.
If AFSBuildMountPointTarget fails when called from AFSLocateNameEntry
the pCurrentVolume reference count will have been freed even though
the pointer has not been updated. If the failure is
STATUS_OBJECT_NAME_NOT_FOUND and AFSLocateNameEntry was called
by AFSCreateCommon, the Volume reference count will be freed twice.
Jeffrey Altman [Mon, 4 Feb 2013 21:22:56 +0000 (16:22 -0500)]
Windows: AFSObjectInfoDecrement correct return value
The return value must be the new ObjectReferenceCount value not
the value of the Reason counter. This was broken by patchset e267774f1a4f9cc5bfc32c545df36a4bf7947607.
Jeffrey Altman [Mon, 4 Feb 2013 20:14:16 +0000 (15:14 -0500)]
Windows: AFSVolumeCB track RefCount reasons
Introduct AFSVolumeIncrement and AFSVolumeDecrement functions
which are used to increment not only the AFSVolumeCB.VolumeReferenceCount
but also a new VolumeReferences[Reason] counter. In the future when
a VolumeReferenceCount error occurs it may be possible to isolate the
cause to a subset of the code.
In the process, the VolumeReferenceCount necessary to free the
AFSVolumeCB object is changed from 1 to 0 and AFSInitVolume no longer
initializes the AFSVolumeCB count to 2.
The signature for AFSInitVolume and AFSLocateNameEntry are modified
to permit a volume reference reason to be provided. This permits
the reference to be allocated in one function and released in another
without resulting in count imbalances.
OpenBSD: Add config headers for new(er) OS versions.
The OS-specific config header files have not kept up with the
newer releases of OpenBSD. This patch corrects that by adding
header files for OpenBSD versions from 4.9 to 5.3 (the newest
version currently under development).
Simon Wilkinson [Tue, 8 Jan 2013 15:26:45 +0000 (15:26 +0000)]
Build system: Add LT_LDRULE_shlib_missing
Add a new LT_LDRULE which can be used to build shared libraries which
may not contain all of the symbols listed in their .sym files. This
allows us to build a library like roken, where different symbols
will be present on different operating systems.
Mark Vitale [Fri, 21 Dec 2012 22:56:14 +0000 (17:56 -0500)]
dafs: preattach should wait for exclusive states
In rare circumstances an FSYNC_VOL_ON operation may fail silently,
leaving the volume in its previous state. The only clue is a FileLog
message "volume <nnnn> not in quiescent state".
This is caused by a race condition in the volume package: an
FSYNC_VOL_ON operation is attempting to preattach a volume
(in VPreAttachVolumeByVp_r()) at the same time a fileserver RPC
(e.g. FetchStatus) is detaching the volume (in VReleaseVolumeHandles_r())
at the conclusion of attach2() logic.
The fix calls VWaitExclusiveState_r() before calling
VPreAttachVolumeByVp_r().
After lots of intermediate steps a call to ubik_print(), ubik_vprint()
and ubik_dprint*() ends in vFSLog() which adds a timestamp to the output.
So any call to ubik_print(), that does not contain a \n at the end,
makes a mess of the logfile.
The least invasive change will simply add this newline at the end
of any ubik_print() call.
This also prevents long lines in the log, which might appear on
multi-homed hosts with lots of interfaces.
FIXES 1446
Change-Id: I2e44588fcc5b27704dd5fec5a83d99d3a86f86e4
Reviewed-on: http://gerrit.openafs.org/9059 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil> Reviewed-by: Andrew Deason <adeason@sinenomine.net> Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Jeffrey Altman [Tue, 29 Jan 2013 02:12:10 +0000 (21:12 -0500)]
Windows: More RDR Garbage Collection
This patchset addresses the failure of AFSVolumeCB, AFSDirectoryCB,
and AFSObjectInformationCB objects to be garbage collected by the
AFSPrimaryVolumeWorker thread. The AFSPrimaryVolumeWorker thread
is broken up into smaller pieces.
Jeffrey Altman [Sun, 27 Jan 2013 20:06:09 +0000 (15:06 -0500)]
Windows: AFSEvaluateTargetByID Sanity Check Result
If the file server provides the service with bogus status info
and that status info is inconsistent with the allocated fields
in the associated ObjectInformationCB and FCB structures, it can
result in a BSOD. Perform some basic sanity checks and if an
inconsistency is discovered, fail the request. This may result
in the inability to access a file/directory but will prevent a
BSOD.
Jeffrey Altman [Fri, 1 Feb 2013 18:40:22 +0000 (13:40 -0500)]
Windows: Replace ParentObjectInformation pointer
Although rare there have been crashes which were the result of
the ObjectInformationCB being freed while another ObjectInformationCB
is pointing to it via the ParentObjectInformation pointer.
This patchset removes the pointer and replaces it with the ParentFileId
which is used to lookup the Parent ObjectInformationCB via the VolumeCB
BTree of all volume objects. The reference counting rules remain the
same.
Jeffrey Altman [Fri, 25 Jan 2013 05:18:37 +0000 (00:18 -0500)]
Windows: .readonly space reporting
.readonly volumes can be stored on multiple partitions which each
have a different size and free space available. To ensure consistency
regardless of which partition the .readonly is accessed from and
because .readonly volume sizes cannot change, report the allocation
size of the volume as the partition size. Continue to report that
volume has zero free sectors because the volume cannot be written to.
Jeffrey Altman [Fri, 25 Jan 2013 05:17:25 +0000 (00:17 -0500)]
Windows: FILE_READ_ONLY_VOLUME not FILE_DEVICE_READ_ONLY
Instead of stating that the AFS device is read only; report
that the volume in question is read only using the FILE_READ_ONLY_VOLUME
file system characteristic.
Jeffrey Altman [Fri, 25 Jan 2013 05:13:03 +0000 (00:13 -0500)]
Windows: AFSQueryFsAttributeInfo use service response
The File System attributes are set by the service in the volume
information request. Use the values the service provides instead
of returning an incomplete hard coded list.
Jeffrey Altman [Fri, 25 Jan 2013 05:11:41 +0000 (00:11 -0500)]
Windows: FILE_FS_DEVICE_INFORMATION Device Type
Consistently report our device type as FILE_DEVICE_NETWORK_FILE_SYSTEM
instead of FILE_DEVICE_DISK or FILE_DEVICE_DISK_FILE_SYSTEM except
when returning FILE_FS_DEVICE_INFORMATION where we must lie and state
that the device type is FILE_DEVICE_DISK. Otherwise, the Win32 API
GetFileType() returns FILE_TYPE_UNKNOWN instead of FILE_TYPE_DISK.
Applications built from msys (but not current cygwin) treat files
of type FILE_TYPE_UNKNOWN as special character devices instead of
files. This breaks msysGit.
Jeffrey Altman [Tue, 22 Jan 2013 17:44:21 +0000 (12:44 -0500)]
Windows: AFSCleanupFile always flush on last handle
Do not rely on a count of dirty extents to determine if the
service should flush a file during a cleanup operation. Simply
because there are no dirty extents held by the redirector does
not imply that the service has no dirty buffers for the file.
Jeffrey Altman [Thu, 17 Jan 2013 06:44:27 +0000 (01:44 -0500)]
Windows: Convert BkgDaemon Procedures to use rock
The BkgDaemon functions accepted four 32-bit parameters into
which 64-bit offsets and lengths were fit. Convert the routines
to use a procedure specific rock type which is allocated by the
caller to cm_QueueBkgRequest and freed by cm_BkgDaemon.
The use of a rock will permit greater flexibility for future
background procedures to be implemented that require more complex
data to be passed around.
Jeffrey Altman [Thu, 17 Jan 2013 06:42:54 +0000 (01:42 -0500)]
Windows: Set dirty page limit to 2 x ChunkSize / 4096
4096 is the size of a memory manager page. ChunkSize is in octets.
Windows doesn't wait until the limit is reached to begin flushing
and ChunkSize is not a hard limit.
Jeffrey Altman [Fri, 25 Jan 2013 00:42:41 +0000 (19:42 -0500)]
Windows: Add CM_MERGEFLAG_CACHE_BYPASS
If a store operation is performed direct to the file server
bypassing the AFSCache, call cm_MergeStatus() with
CM_MERGEFLAG_CACHE_BYPASS to ensure that the valid version
numbers for the cm_scache_t object are incremented appropriately.
After a cache bypass occurs, only buffers with the current
data version number are valid since the cached data will be
incomplete.
Jeffrey Altman [Thu, 31 Jan 2013 02:45:44 +0000 (21:45 -0500)]
Windows: AFSInitPIOCtlDirectoryCB fixes
Rename ObjectInfo parameter to ParentObjectInfo since
it does represent the parent of the PIOCtlDirectoryCB
that is being allocated.
If the AFS_DIR_ENTRY_TAG allocation fails, do not call
AFSDeleteObjectInfo( pObjectInfoCB) prior to the try_return
because AFSDeleteObjectInfo() will be executed in the try_exit
block.
Finally, do not increment the pDirNode->ObjectInformationCB
reference count when returning STATUS_REPARSE. The reference
count is tracked by the pDirNode pointer and has already been
allocated.
Jeffrey Altman [Fri, 25 Jan 2013 00:25:37 +0000 (19:25 -0500)]
Windows: AFSProcessCreate drop DirOpenRefCount on exit
AFSProcessCreate() must not maintain its DirOpenReferenceCount
when bFileCreated is true because the AFSCcb maintains its own
count and the one obtained by AFSProcessCreate() will only be
leaked.
Jeffrey Altman [Thu, 24 Jan 2013 23:55:24 +0000 (18:55 -0500)]
Windows: Introduce NameArray Reference Counts
Split the DirOpenReferenceCounts into those related to DirectoryCB
reference counting unrelated to the NameArrays and those that are
related to the NameArrays. This helps track down the source of
overcounts and undercounts.
Jeffrey Altman [Thu, 24 Jan 2013 23:44:33 +0000 (18:44 -0500)]
Windows: Categorize ObjectInformationCB RefCnts
To assist in tracking down the source of ObjectInformationCB
overcounts and undercounts, add an advisory array which tracks
the reference counts by category. In the procress ensure that
all reference count changes are logged by tracing.
Jeffrey Altman [Thu, 24 Jan 2013 23:24:55 +0000 (18:24 -0500)]
Windows: AFS_SUBSYSTEM_OBJECT_REF_COUNTING fixes
A large number of trace messages monitoring ObjectInformationCB
reference counting were categorized under AFS_SUBSYSTEM_FCB_REF_COUNTING
instead of AFS_SUBSYSTEM_OBJECT_REF_COUNTING. This patchset applies
the correct subsystem category.
Jeffrey Altman [Thu, 24 Jan 2013 21:29:52 +0000 (16:29 -0500)]
Windows: Reduce RDR Object Lifetime
Adjust the redirector object lifetime from 10 minutes (600 seconds)
to 20 seconds. The object lifetime is how long an object can remain
idle before garbage collection is permitted.
Jeffrey Altman [Sun, 13 Jan 2013 15:15:02 +0000 (10:15 -0500)]
windows: Update raw fetch/store operations
rawops.c is a hold over from Eric Williams' original attempt
to implement an AFS redirector. When the rest of the his code
was purged from the tree and replaced with a more complete
implementation based upon the Kernel Drivers's File System
framework rawops.c was left behind.
Although the source file has been compiled as part of the build,
its functions ReadData and WriteData have never been called. This
patchset:
1. renames the functions to raw_ReadData and raw_WriteData
2. modifies the function signatures and provides a header
with prototypes
3. requires that cm_scache.rw be write-locked upon entry
4. renames variables
5. removes the #define CM_BUF_BUFSIZE and relies upon
cm_data.blockSize instead
6. Always write back the current range as an async store
instead of the previous chunk as random write patterns
will fail to store all of the dirty buffers.
Michael Meffie [Wed, 16 Jan 2013 17:10:02 +0000 (12:10 -0500)]
vlclient: add -probe option
Add a new option to the vlclient test program to call the
probe server RPC to ping the vlservers in a cell. Uses a multi
rx call to do the probes in parallel.
The existing -host option can be used to ping a single
vlserver.
Simon Wilkinson [Sat, 2 Feb 2013 07:20:14 +0000 (07:20 +0000)]
auth: Permit NULL fallback in localauth case
Allow the caller of afsconf_PickClientSecObj to specify both
local authentication, and to request fallback to null authentication
if local auth isn't available.