Don't call cm_GetCallback without checking the current callback status
with cm_HaveCallback first
====================
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.
====================
undo this incorrect change. don't test for existence of a callback
when we want to force a FetchStatus to obtain per-user ACL info
(cherry picked from commit 665a125335c4844d35fa6510a38083602ef7fdbc)
FIXES 40291
Disable DNS Registrations for the Loopback Adapter and make sure
that Netbios is turned on.
(cherry picked from commit 3e28a968e0b916c176b978da2807a7e4857faa18)
cm_LookupInternal can return the input stat cache entry when the name
is "."
the DNLC should not cache "." or ".."
(cherry picked from commit a63d753df88e547606f703764031ad1b9d18fa82)
How did the afs_shl_ext_XXXX.dll module ever load on any platform?
Since the name afs_shl_ext.dll is not 8.3 we must specify the base name
explicitly. Otherwise, it won't load.
(cherry picked from commit 56d71eaae70eca2c6065b9cf463c18cc3f6c7356)
do not panic if we reach maxVolumes and there is a volume entry that
can be recycled.
(cherry picked from commit 375a79f2a02ff2c16f9fcc54dba2b51e41b51c05)
The previous code failed to specify the correct size of the REG_MULTI_SZ
being written to the registry when appending an additional name to the
list of Back Connection Host names. This would cause the written string
to contain
FOO\0B
instead of
FOO\0\BAR\0\0
this caused problems for Windows 2000 lsass.exe which failed to properly
allocate the buffer for RegQueryValueEx and failed to check that it did
not read beyond the buffer. If the list was not terminated with two
nuls an exception would be thrown that could result in a lock being
orphaned on the NTLMNameTable. This would in turn prevent authentications
to UNC resources from completing. As a result, the startup of
afsd_service.exe would fail if a GlobalAutoMapper drive was configured.
The work around is to set the correct value in the registry before
switching machine names or installing/removing the Microsoft Loopback
Adapter.
(cherry picked from commit cca848edb12abea4deb8f676b07182575d61186d)
pop up error dialogs prevent auto shutdown and restart of afsd service
on network adapater error
(cherry picked from commit 2247c0e499df70f2de1797e674ce1035514fc05c)
add logging of server addresses, status and capabilities
prevent multiple threads from pinging the same server simultaneously.
instead, threads block and then use the result of the ping that was
already taking place.
(cherry picked from commit 424ae50d1f7dfe0c3557d98f8ae9bc03a8265a21)
This patch adds large file support (> 2GB) to the CIFS server and
the cache manager.
It also corrects a significant oversight where the definition of
struct rx_call was inconsistent due to a failure to define AFS_PTHREAD_ENV
prior to including rx.h in all source files. This prevented all errors
during rx_Read and rx_Write to be ignored.
(cherry picked from commit 015f9ce287c22df7a0b967ee0357d0816b4e0e54)
delta windows-integrated-logon-20060724 would cause Windows 2000
systems to blue screen with an exception in winlogon.exe.
(cherry picked from commit 3167f707fdf582c8ca851a353ca0c82b92ccc947)
* apply ACL restrictions to credential cache immediately after
initialization
* move file from system temp directory to user temp directory
prior to starting executable as user to perform credential
import
(cherry picked from commit 1a0329fef030fedce3fb12d9c641825b0d49f053)
* Updates to WIX installer to support the 2.0.4221 build
* Removes unnecessary files from Release Notes
(cherry picked from commit 436e8fe17b2051db806e386db86b3de789afb2f0)
Don't timeout based upon the LAN Workstation Session Timeout value.
Instead wait for the rx hard dead timeout.
(cherry picked from commit 8f2aba65819a668fc4a78c0ab929932c23cbc381)
* do not attempt to copy kfw krb5 creds if integrated logon disabled
* disable use of automatic registration from afslogon.dll. calling
pr_Initialize() results in rx_Init() being called which creates
threads that prevent safe unloading of the dll. This is causing
crashes in third party applications that call CreateProcessAsUser()
which in turn temporarily loads afslogon.dll.
* add life_to_time to afskfw.c in order remove the link to the rxkad
and des libraries
(cherry picked from commit 61df8d9fc834b87d758d8581e73fa7c05198ecf4)
overquota and diskfull errors are detected while writing dirty buffers
to the file server. A flag is set on the scp so that the error can
be returned to the caller. cm_FSync was clearing the flag without
returning the error. This permitted calls to Win32 WriteFile to report
success even when they failed.
(cherry picked from commit 8e0033ba73ef9551cb24052ef90db677e4adad50)
If cm_SyncOp is called with the buffer locked, it must be returned
locked even on error.
(cherry picked from commit ae9a07a8e0a5d0e83e138ef9bbd71b3e7e0072ea)
When Freelance mode is not in use the cache manager must load the root.afs
volume of the default cell in order to be able to start. Unfortunately,
if the first vlserver fails the request to obtain the volume information
will timeout and no retries will be performed. This patch performs up
to 10 retries in the initialization code in order to enable the vlservers
to be marked down so that failover can occur.
(cherry picked from commit 4859232df55c94232a70d602cafe6a8bcc72d9dd)
The "is a directory" value was being set one field beyond the end of
the Standard Info reply structure.
(cherry picked from commit 2c20a3d603fcc654759b8c90924f36468f8aae81)
Be consistent about reporting mountpoints and invalid links as directories
to the CIFS client.
(cherry picked from commit 422f2d4523ae9be2ff3f1395db1dd62b0b3a3b4b)
A deadlock was detected when performing "fs flushall" if the file
server reports VNOVNODE. The scp->createBufferLock is already
held by the current thread and there is no mechanism to propagate
the knowledge. Therefore, an alternate mechanism for clearing the
cache must be developed. A new function cm_RecycleSCache(scp,flags)
has been extracted from cm_GetNewSCache(). This function performs
the task of recycling an cm_scache_t object. When called from
cm_GetNewSCache() with no flags the expectation is that there are
no associated buffers that are queued to be read or written. When
called from cm_Analyze() with the CM_SCACHE_RECYCLEFLAG_DESTROY_BUFFERS
flag, any queued buffers will be de-queued and marked as if the operations
were performed so the data can be discarded.
This patch also addresses the following issues:
* CM_ERROR codes were logged as "unknown" by cm_Analyze.
* In response to VNOVNODE, the parent is only discarded if the current
cm_scache_t is not a directory.
* In the Ioctl FlushFile and FlushVolume functions, there were no
checks to protect against flushing the Freelance SCache entries.
* In FlushFile, the wrong cm_scache_t object was being released.
* In cm_GetNewSCache, do not allow Freelance SCache entries to be
recycled. Choose a new entry if cm_RecycleSCache fails.
(cherry picked from commit f4f09d1c03cf738de6f73fc9d56502babd6743b4)