LICENSE MIT
A problem was discovered with cm_Analyze when serverRef instances are
marked offline. cm_CheckOfflineVolume() was not resetting the serverRef
state. cm_Analyze was also waiting in sleep calls when it was it is
clear that waiting would not result in a change of state.
cm_CheckOfflineVolume() was updated to always reset the serverRef state
and indicate that the volume should be considered online for the purpose
of retrying when the serverRef state is reset to srv_not_busy.
The problems identified in the MIT dev.mit.edu stress test environment
are resolved by these changes.
LICENSE IPL10
FIXES 93898
"It is actually the detection of a "cell" in the mount point string
which triggers the (loosely consistent) fakestat handling - it's
treated like a foreign cell and the mount point is never "completely
evaluated", i.e. logically replaced by the root directory of the
volume in question. As a result, callbacks are ignored, as they go
against the directory and not the mount point."
LICENSE MIT
1. Convert cm_volume_t mutex to a rwlock (rw).
2. Don't hold cm_volume_t lock across RPCs
3. Add CM_VOLUMEFLAG_UPDATING_VL flag to prevent multiple threads
from performing volume update calls at the same time on the same
volume set.
4. Convert the .rw, .ro, and .bk cm_vol_state_t members of cm_volume_t
to an array of cm_vol_state_t members indexed using the pre-existing
RWVOL, ROVOL and BACKVOL preprocessor symbols. This will permit
consolidation of code and make it easier to add new volume types
to the volume set in the future.
LICENSE MIT
Do not set the DV on the rootSCachep because doing so disables
the use of MergeStatus().
Do not remove the rootSCachep from the hash table because doing
so makes causes a second cm_scache_t object for that fid to be created
that is not the root.
LICENSE MIT
Add a -noresolve option to all vos commands. This permits the display
of servers by IP address instead of DNS name. Very useful when 127.0.0.1
is registered as the server address or when trying to eliminate
multi-homed addresses.
LICENSE MIT
Add support for building with VS2005 Runtime Libraries.
For the release build use the vcredist_<arch>.exe package.
For the debug build, build an msi from the merge modules
and then install that package.
LICENSE MIT
When freelance symlinks and mountpoints were modified the target string
value was not being updated and the old data was not being invalidated.
LICENSE MIT
1. During the conversion to hash based FID comparisons the cm_GetSCache()
lookups from the cm_ioctl.c (CM_IOCTL_QOPTS_HAVE_FID) and from FIDs
returned by cm_LookupSearchProc() were broken.
2. In cm_LookupInternal(), ensure that an error is returned if rock.found
is FALSE. A failure to return an error was resulting in cm_GetSCache()
producing an object for FIDs with vnode=0,unique=0
3. cm_GetSCache(), remove the warning check for vnode=0,unique=0
4. reapply the synchronization logic to async store requests in cm_SyncOp().
The lack of synchronization is causing requests to complete out of order
which is confusing the SMB redirector when under heavy load.
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 MIT
Fix the order of parameters to strncpy
====================
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
Fix the order of parameters to strncpy
Add error checking to all krb5 functions.
Initialize the global ccache variable to NULL.
LICENSE MIT
Two recent changes to the AFS/Kerberos landscape have been causing
problems for aklog and related modules. First, the support for multiple
local realms for the cell has broken the pts auto-registration code
when the realm used for the token acquisition does not match the
realm belonging to the selected vldb server. Second, Kerberos referrals
prevents detection of the realm of the vldb server.
This commit adds a new method of searching for the afs service principal.
The first attempt is for afs/<cell>@<CLIENT-REALM>. If found, the
<CLIENT-REALM> is used as the realm of the cell.
The patch adds error handling for KRB5_ERR_HOST_REALM_UNKNOWN which is
returned when krb5_get_host_realm() can't determine the realm.
Duplicate queries are also avoided and copy_realm_of_ticket() is
properly employed.
LICENSE MIT
1. return CM_ERROR_NOSUCHFILE when attempting to remove a symlink or
mount point that does not exist
2. When adding a new symlink or mountpoint, be sure to increment the
number of local mount points
3. When re-initializing the fake root.cell the unique value is always
one, not two. Use cm_FidCmp() to compare fids. The use of the
value two prevented the invalidation of existing values because all
of the directory entries are created with the unique set to one.