LICENSE IPL10
FIXES 124627
fix the mmap anti-recursion protection to set and mask CPageWrite appropriately
and with the correct lock protection. this leaves us with an issue to handle
when the mmap'd file is larger (possibly considerably larger) than the
cache
LICENSE MIT
The windows dcache module synchronizes store data operations in
order to prevent multiple simultaneous store data operations against
the same file at the same time by multiple threads. This is performed
using cm_SyncOp(CM_SCACHESYNC_STOREDATA_EXCL). However, cm_SetupStoreBIOD()
was being processed prior to the synchronization. As a result a dirty
buffer could be added to two BIOD lists resulting in the same buffer
contents being written to the file server twice.
This patch moves the cm_SetupStoreBIOD() into the synchronization region.
It also adds a new 'locked' parameter to cm_ReleaseBIOD() that indicates
whether or not the cm_scache_t object is locked when called. This
permits fewer lock state changes to be used in several cases.
LICENSE IPL10
FIXES 124737
Newer Linux kernels differentiate between the real and effective
credentials of a process, and prevent a process's credentials from being
change when the effective credentials have been set to a different value.
When AFS notices a keyring PAG exists but no group-based PAG does, the
attempt to rectify this, if done in a VFS call (which changes effective creds)
triggers this issue. We defer the change to the groups to avoid it.
LICENSE MIT
Fix conditional test that assigns value to idleDeadTimeout
Modify event log message to indicate timeout could be either a
hard or an idle timeout.
As described in the source comments, do not retry on a hard or
idle timeout.
LICENSE IPL10
FIXES 123620
rework previous fh-based cache support. now allows use of
arbitrarily large file handles, and build correctly for UKERNEL.
we now just use this if there's no iget, instead of providing a configure
switch.
because this relies on the somewhat invasive patch from 124184 it is not
currently pulled up to 1.4.x
LICENSE IPL10
FIXES 124184
previous versions had abstract functions for linux (use_fh) and osx/solaris
(cache_vnode_path) cache file access, which was contributing to code bloat
switch to a union for disk/memory cache objects, and provide functions to
convert these into something appropriate for each system
LICENSE MIT
FIXES 124742
Change the PathInAfs test to use VIOCGETFID instead of VIOC_GET_CELL_NAME.
VIOCGETFID permits a literal test of the specified object. This is needed
for testing the validity of a symlink to a msdfs: or non-existent path.
Otherwise, the AFS Shell Extension context menu will not be displayed.
LICENSE MIT
Now that BackConnectionHostNames can be set each time the smb listener
threads are stopped and restarted, we need to make sure that we do not
clear the DisableLoopbackCheck value if it was set during the same
service session because BackConnectionHostName value changes only take
effect on a reboot.
LICENSE IPL10
vos hides "online", "offline", "delentry -noexecute", and "addsite -valid".
All of these are currently documented in the man pages without warning.
Reveal them.
LICENSE MIT
Move configureBackConnectionHostNames() to smb_StartListeners()
so that when the NetbiosName changes while the service is running
the new values can be set.
Add configureExtendedSMBSessionTimeouts() which configures new
SMB functionality added in a Win2003 post-SP2 hot fix.
LICENSE MIT
replace the VOLSTAT online test with the PATH_AVAILABILITY
online test. We do not care of the volume is offline on the file
server if the cache manager has current data to serve.
LICENSE MIT
For CM_ERROR_BADSHARENAME return BAD_NETWORK_PATH instead
of BAD_NETWORK_NAME. The latter refers to the server name
and the former to the share name. Returning BAD_NETWORK_NAME
will causes the smb redirector to break its connection to \\AFS.
For CM_ERROR_ALLOFFLINE and CM_ERROR_ALLDOWN return PATH_NOT_FOUND
instead of BAD_NETWORK_PATH. We don't want the smb redirector
to tear down all open files just because some volume in the path
is inaccessible at the moment.
LICENSE MIT
Any use of OutputDebugString() in production can result in serious
delays in the execution of the thread that issues the call. Remove
the last of the unprotected calls within afsd_service.
LICENSE MIT
get the i386 case right
====================
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 MIT
fixup the @echo again
LICENSE MIT
Add more info about the smb request to the log entry
that is written to afsd_init.log if the request took
longer than 45 seconds to complete.
LICENSE MIT
Change the default priority class for afsd_service.exe to High.
This matches the priority class assigned to other system processes
that generate requests to afsd_service.exe.
Permit the ..\TransarcAFSDaemon\Parameters "PriorityClass"
registry value to be used to change the default.
LICENSE MIT
add xdr_free() and export it from afsrpc.dll. This permits applications
to free memory allocated within the xdr routines with the same run time
library memory management routines as was used to allocate it.
This is necessary on Windows to prevent memory corruption.
VL_GetAddrsU() is an example where a xdr array is allocated in the
library and must be freed by the application.
LICENSE MIT
make use of xdr_free() to release memory allocated within afsrpc.dll.
this prevents crashes when the library is built with a different
runtime library version than the application.
fix signed/unsigned warnings in the same code snippet
LICENSE MIT
For each SMB transation log the 'mid' field of the smb packet.
The 'mid' field can be used as a reference against the mrxsmb request
logging for debugging purposes.