LICENSE MIT
When a local directory update occurs to the directory pages stored
in the dcache, there is no guarrantee that the same modifications
will be made to the cached pages as are being made by the file server.
In the situation that one or more of the cached pages are recycled,
it is not permissible to obtain the missing pages from the file server
without first invalidating the rest of the cached pages. This is
necessary to prevent mixing of incompatible data representations.
Define a new flag CM_SCACHEFLAG_LOCAL which is used to indicate that
dcache entries were locally modified even though they are not dirty.
As the previous code could have corrupted the contents of the dcache,
bump CM_CONFIG_DATA_VERSION in order to force the rebuilding of the
cache.
Add error CM_ERROR_NOTINCACHE to indicate that a requested directory
page is not present in the cache and will not be created on the fly.
Prefetch all dcache entries for directories and ensure that a consistent
set is being used.
(cherry picked from commit 1f686941197c32734acd2531a911b8e5e43cc94e)
LICENSE MIT
Replicate the FAT and NTFS behavior that the "*." pattern should match
all files without an extension.
(cherry picked from commit c4117f6f07b92fcc3a135badb48099a01ba41fe2)
LICENSE MIT
clear CM_BUF_REDIR flag implicitly when a file is deleted but only after
notifying the file system that the file has been deleted.
Add a Debug Output String for errors that were not mapped to an NTStatus
LICENSE MIT
Add a ResultStatus field to the AFSSetFileExtentsCB structure
so that the service can report to the file system why an async
extents request failed.
LICENSE MIT
Replace the int64 key with a struct because process ids on 64-bit
Windows can be 64-bit when obtained through the redirector interface.
(cherry picked from commit 2d709220d53fe9c5da23e2dbb32764fd3cbfea48)
LICENSE MIT
The cm_serverRef_t list reference counts were undercounting and
prematurely freeing the server lists for volumes that experienced
VNOVOL and VMOVED errors. cm_Analyze() must release the server
list before forcibly updating the volume location info. Otherwise,
the list that gets freed is the old one concatenated with the new
one.
Add more trace messages.
(cherry picked from commit 1456a67c5ca024c523e0fc3edcba720780d4be9e)
LICENSE MIT
if we are going to use hot threads it would be useful if there were
some additional server threads available to become listeners as
needed.
(cherry picked from commit fd55471b57bce441454d7b3c72c7be6a66aad65d)
LICENSE MIT
A small patch to permit the directory package to allocate additional
directory pages when adding new entries that do not fit in the pages
that were obtained from the file server.
(cherry picked from commit 7ae4174d95a9d90e16f0ddc66648741a119339d2)
LICENSE MIT
Modify MSG_SERVER_REPORTS_VNOVOL to mention that the volume may
have been moved or deleted.
In cm_Analyze(), do not call cm_ForceUpdateVolume() or force a retry
when processing CM_ERROR_NOSUCHVOLUME. This CM error value is the
result of a VNOVOL already being processed which would have forced
the update.
When a VMOVED or VNOVOL error is received, remove the volume id from
the server's volume list.
If cm_ForceUpdateVolume() returns a failure, do not retry if a
VMOVED or VNOVOL error was received.
Make sure that if a cm_serverRef_t object is marked srv_deleted
that its references not be used.
Now that cm_ForceUpdateVolume() is being called only when processing
VMOVED and VNOVOL errors, permit it to call cm_UpdateVolumeLocation()
immediately.
Refactor cm_CheckOfflineVolume() to reduce code duplication.
(cherry picked from commit 5ea02ad1e2bdb98bea27e11c1372f90d1940de17)
LICENSE MIT
fs flushall, fs flushvolume, and fs flush should tear down directory
B+ trees so that when the data buffers are re-read from the file server
with the same data version, the B+ trees will be rebuilt.
(cherry picked from commit 186f1e97d0c15ead6bddae8697161a47ce9a80e4)
LICENSE MIT
Disable rx jumbo by default. Permit rx jumbo to be enabled with
registry value "RxJumbo" set to 1 or "RxNoJumbo" set to 0.
RxNoJumbo has priority.
(cherry picked from commit 8e1b48ad0ab7f3790729ea0feb25256b3a9da709)
LICENSE MIT
Permit rx_multi check server to be toggled via a registry setting
at checked prior to each invocation. "MultiCheckServers".
Default is on.
Remove volume status updates for vldb server status changes.
(cherry picked from commit 59c1c22747b8aaf1da31f97d8a3ea178a4f7adee)
LICENSE MIT
force a volume location update upon receipt of a VNOVOL error
in case the volume was moved. VMOVED is only returned by the file
server if the volume is in the process of being moved. Once it has
been deleted the file server returns VNOVOL.
(cherry picked from commit 0860d5b5b17ef5f58592d739424a4cca8dd91bb5)
LICENSE MIT
Advertise the correct length for the volume name. Do not include the NUL.
Add more create option values as #defines.
(cherry picked from commit beef54e70cc86672b9971288fe4034829186aa41)
LICENSE MIT
fix a lock order issue and protect the timeout and flags field
of cm_cell_t with the mutex instead of the global lock.
(cherry picked from commit bbd713ad3f403c9137e01797f576f5dbd04a0f08)
LICENSE IPL10
FIXES 114555
because rx_Finalize doesn't clean up, we end up reiniting mutexes. use
pthread_once when not in the kernel.
(kernel does not now call rx_Finalize, ever)
(cherry picked from commit 7f4e0dfc3ef1464c8d8b422bf00915fa4538090c)
LICENSE MIT
Fix the conditionals so that the right thing happens if AFS_AFSDB_ENV
is not defined.
(cherry picked from commit 9803e84e63c28e87c76e6f4e77343fec4ef4dcf4)
LICENSE MIT
more cases where -1 should be passed in as opposed to the strlen value
when converting between char and wchar forms
(cherry picked from commit 84e10d582abdf65a5354b1c4b41d7e2ecad532f8)
LICENSE MIT
Add ability for users to select rxkad auth only mode.
"fs setcrypt auth".
(cherry picked from commit d94b9a78188357f87fa569ec7738d4e69ff05faa)
LICENSE MIT
add a free list to the cm_cell_t structure. if during cm_GetCellGen()
the cm_SearchCellXXX() calls fail, store the allocated cm_cell_t object
on a free list so that it can be reused for the next request.
(cherry picked from commit e31826d3331b8eb1893c627ac55eb299df88995b)
LICENSE MIT
Perform the initial cm_SearchCellXXX call using a temporary cm_cell_t
object in case the search fails.
(cherry picked from commit ef64f50fb9f477a0acbe1223ee2b0c9981f9324e)
LICENSE MIT
Whether or not LsaCallAuthenticationPackage succeeds, it may return
a response buffer. If it does, free it.
(cherry picked from commit a653057ff453a0d340c8153615aa44ae1679c892)
LICENSE MIT
Add TransarcAFSDaemon/Parameters key "LockOrderValidation" DWORD
to control lock order validation functionality. Defaults to off
for release builds and on for checked builds.
(cherry picked from commit 83dadab93adde0812f9ae228667683cfcc761f67)
LICENSE MIT
Add osi_SetLockOrderValidation(int) to permit lock order validation
to be turned on and off. Must be executed before the first lock
is obtained.
(cherry picked from commit a36596f10ff4d87d75a808cabe4e0e5ec661c5df)
LICENSE MIT
reorganize the service shutdown order to permit dirty buffers to be
flushed to the file server without competition from incoming requests.
(cherry picked from commit 2da64d02a2707a3c9220951a30b5cea8464b9ef9)
LICENSE MIT
During buf_Shutdown() all dirty buffers should be written to the file
server if they can be.
(cherry picked from commit ccdf50ade371de595abe20f5a6b0ff149ce9ae79)
LICENSE BSD
Permit evaluation of symlinks to symlinks or mountpoints
More extent handling improvements
Support drive letter mappings to \\afs\all
Do not add network provider registry values from the .INF file
LICENSE MIT
Add lock order validation for RDR lock
Add processing of extent recovery
Add makefile support for test directory
====================
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
Unit tests for afsd
====================
LICENSE MIT
define new ioctls
IOCTL_AFS_RELEASE_FILE_EXTENTS_DONE
IOCTL_AFS_NETWORK_STATUS
IOCTL_AFS_VOLUME_STATUS
Add ExtentCount to AFSCacheFileInfo
Make the use of FileId instead of FileID consist
Add HeldExtentCount to AFSReleaseFileExtentsCB
====================
LICENSE BSD
Kernel Drivers drop 2.1.0.2
====================
LICENSE BSD
Code drop 2.1.0.2
LICENSE MIT
Protect against a heap overwrite that could occur is the number of file
servers or vldb servers grows while the maximum number of connections
is computed and when the connection list is populated.
(cherry picked from commit e68255c12c444e36b7ca7f1864d964cd3a0bcda8)
LICENSE MIT
do not hold cm_server_t mutex when calling cm_FindVolumeByID because
the cm_volume_t lock must be obtained ahead of the cm_server_t mutex
(cherry picked from commit 0affa4b86a08c3be9cb4edc4c9f680ae02a2fcd8)