For each StoreData operation the dataVersion on the object is incremented.
To prevent all of the cached buffers from being considered out of date,
if the dataVersion has been incremented by exactly one, then update the
dataVersion of the buffers that match the FID and the previous dataVersion
Instead of using a fixed sized hashtable of 1024 entries regardless
of the number of buffers, compute the hashtable to be large enough
for on average 7 buffers per bucket.
Remove the 'size' field from cm_buf_t since it is never used.
Add more info to the output of cm_buf_t objects when using "fs memdump"
Add a 'failed' parameter to the cm_ReleaseBIOD function. This enables
the clearing of the CM_BUF_DIRTY flag to be conditional upon successful
completion of the store operation.
background request functions such as BkgFetch and BkgStore do not
return success or failure. the bkgDaemon thread simply executes
the request and discards it regardless of whether or not the request
was completed. this can result in background store event failing
to be written to the file server.
modify the background request functions to return success or failure.
modify the background daemon to put failed requests back onto the queue
if the reason for failure was transient.
modify the background daemon only to process requests when the servers
for the volume are marked up.
Correct the return types and values of the Window Procedures.
This fixes the drive mappings problems.
====================
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.
====================
FIXES 45545
Remove "Drive " from the drive mappings. This way the drive letters
can be selected with a single key press.
even if afsd_service.exe can be shut down the binary might still not
be able to be replaced due to the windows Protection Service.
Use the ReplaceDLL macro
If an app tries to open the freelance directory for WRITE then the
default anonymous access privileges, read/lookup, are not sufficient
and cm_HaveAccessRights will fail. Freelance can't get access rights
from anywhere. Therefore, cm_HaveAccessRights should special case
the Freelance directory.
the cm_CheckNTDelete function was testing the permissions of the
directory and not the permissions of the file being deleted.
This resulted in inconsistencies between the attributes of the
file and the ability to delete it.
this patch also adds a large amount of trace log entries as there
was none in this section of the code before.
The salvager on Windows was not being built properly. The fssync-debug.c
main() was being used instead of the salvager.c main(). Remove
fssync-debug.obj from the library and fixup the includes and global
variable declarations.
====================
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.
====================
FIXES 50870
basically, if the issue is really expired tokens then we force the server to tell us that instead of that our older connection is still using the old tokens for some reason, by letting a new connection happen first
Test whether Linux kernel builds work at all before going into specific
builds so that we can fail earlier with a better error message. Try to
put more errors from the kernel build into config.log.
When the Unix mode bits do not include the write bit (0200), then the
file is reported to Windows as read-only. This also prevents the
acquisition of write-locks. It should also prevent deletion but the
code in cm_HaveAccessRights() did not remove the PRSFS_DELETE privilege
from the reported rights.
====================
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.
====================
replace 'try' with 'try_init' and declare 'try_init'.
'try' is a reserved word on some compilers. not sure how this code
was compiling on MacOS X and Windows as 'try' was not declared.
why the heck would it be a good idea to rewrite the BosConfig while we are starting, exactly?
====================
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.
====================
why the heck would it be a good idea to rewrite the BosConfig while we are start
ing, exactly?
"vos release" per default does an incremental dump.
volser-dump-validate-input-20060417 ends up with keeping dead vnodes and
data in the remote RO-volume. This patch corrects the behavior for
RO-volumes.
When performing a SMB FindFirst/FindNext/FindClose operation if there
are no wildcards involved, we can optimize the case and turn it from
O(n) to O(1) where 'n' is the number of entries in the directory.
This can be done by performing a cm_Lookup() and if it succeeds,
constructing the appropriate response instead of parsing the contents
of each buffer associated with the directory looking for matches.
Without this optimization, FindFirst operations on directories containing
thousands of entries can take a large number of seconds to complete.
When rxBind was added it made an assumption that rx_GetIFInfo could be
called before rx_InitXYZ. This is true on non-Windows platforms, but
on Windows rxGetIFInfo relies on an initialized mutex. This patch adds
a DllMain for Windows in order to initialize the mutex object upon DLL
load.
While investigating the reasons behind the Drive Mapping listbox
failing to permit entries 2 or above to be edited or removed and
the text string being truncated to two characters (on some systems)
I discovered that the subclasses were being recompiled into each
application instead of linking against the DLL that contains the
controls.
The custom controls have been renamed to address name space issues.
The "Drive X:" label changed to "X:" to permit single character item
selection within the listbox.
Still have no idea what is really going on. Spy++ shows the Windows
messages being sent to the correct Windows. However, the getcount
message never obtains a value other than 0 or 1. This is probably
why the selection code is broken. Still working on it.