a re-write of the Tran2 Query File Info, Query Path Info, Set File Info,
and Set Path Info functions to make them more readable and ensure
correctness.
" ld: warning: relocation warning: R_SPARC_COPY: file
/usr/local/lib/libafsrpc.so: symbol
rx_enable_stats: relocation bound to a symbol with STV_PROTECTED
visibility
Undefined first referenced
symbol in file
xdr_afs_uint32
/usr/local/lib/libafsauthent.a(ptint.xdr.o)
ld: fatal: Symbol referencing errors. No output written to slapd
collect2: ld returned 1 exit status
"
====================
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.
====================
In s10u2 the vnode path cache code was modified so that we're no longer
guaranteed of having a valid path cache pointer for the lofs mount case.
Attached patch changes gafs_rename to deal with this. Patch also removes
unnecessary MODLOAD32 build rule from sun4x_510 case.
====================
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.
====================
* 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
The use of strncmp() results in p->v5_str being treated as matching
prefix instead of as the complete string. This causes "ftpa" to be
considered a match for "ftp".
New CM_SCACHEFLAG_EACCESS flag is used to track whether the status
information was the result of an EACCESS error during an inline bulk
status call. If so, we have a callback but did not get any status
info. When this flag is set we include the entry in future bulk status
calls but otherwise treat the cm_scache entry as if it has a valid
callback. The callback will be revoked if the ACLs on the object
changes.
Activate previously implemented TryBulkStat code. Due to incorrect
comparisons the code was never executed. Add support for InlineBulkStat
with fallback to BulkStat and increase the size of CM_BULKMAX to 150.
(3 * AFSCBMAX)
Add CM_SERVERFLAG_NOINLINEBULK to track support for InlineBulkStat.
Clear flag during InitCallbackState.
Modify afssw_GetClientInstallDir to check both the registry for both
the full client installation as well as the 32-bit tools installation
for the Client Install Pathname.
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.
Check for krb524 functions in libkrb524 if not found in libkrb5 so that the
Kerberos v5 support will build on RHEL3. Thanks to Derek Atkins for the
debugging and testing.
Autoconf 2.60 will replace some variables, most notably mandir, with values
relative to datarootdir, a new variable. Add settings of datarootdir to
the affected files.
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.
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.
"the non AFS_GLOBAL_RXLOCK_KERNEL version of
rxi_ReceiveAckPacket() wasnt counting 'hard' acks and not opening the
congestion window. using rx_Readv() directs the incoming packets into
the target iov, and sends a hard ack (skipping soft acks). "
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.
It is possible to have a valid callback but not to have the
required ACL info for the current user. Force acquisition of
a FetchStatus but do so without making multiple calls.