LICENSE MIT
FIXES 124293
As evident in a crash dump, there is a race surrounding access to the
scp field of the smb_fid_t object. Not all access was protected by
the smb_fid_t mx and the cm_scache_t object was not always being
reference counted within the accessing function.
This patch ensures that all initial references to the scp object
are performed under the smb_fid_t mx mutex and that the cm_scache_t
is prevented from being recycled by obtaining a local reference.
Finally, CM_ERROR_BADFD is returned as an error if a request begins
after the smb_fid_t scp field has already been cleared by a smb_CloseFID()
call as part of a concurrent request.
(cherry picked from commit 8e3b67b9537097928b4fc13844db09d429ac9bed)
LICENSE MIT
FIXES 124276
A readonly volume with multiple instances was being marked alldown
when one of the instances resulted in VNOVOL because the vldb and
the indicated file server were out of sync. The cache manager would
then attempt to re-obtain the volume location info from the vldb
for the entire timeout period.
This patch:
adds trace logging to cm_Analyze indicating which server references
are being deleted and which remain in response to a VNOVOL/VMOVED error.
adds trace logging to cm_UpdateVolumeStatusInt showing how the
new volume status value is determined.
corrects cm_Analyze() so that it doesn't corrupt the server reference
list during cm_FreeServerList() calls; doesn't orphan the server reference
list by setting *serverpp to NULL; and only re-obtains the volume info
list once per request.
(cherry picked from commit 8bb35234aa8469ba93a2171fced503a875c2f1f6)
LICENSE BSD
In rxi_WritevProc the queueScan that sets RX_PKTFLAG_TQ on the packet
really needs to cast the queue objects to rx_packet instead of rx_call.
Trashing random fields is not a good idea.
(cherry picked from commit 0edbc512b52848f076525ede5ff166f3785128a7)
LICENSE MIT
set the correct fid vnode/unique values when adding new symlnks and
mount points.
(cherry picked from commit ffdc7c70889386dca37e207a91791d5d0728d2d7)
LICENSE BSD
Fix the -parallel example in the main description text: "5all" should be
"all5". Reword the description a bit to hopefully make it clearer that
there are two separate values set here. Note under the option description
of -parallel that multiple partitions on the same device are normally
processed serially.
(cherry picked from commit d4763404655e27098eb4340eca8777b63d8a5847)
LICENSE IPL10
FIXES 124128
use linux's vmtruncate feature instead of doing a somewhat-right internal versio
n
(cherry picked from commit 175393288df30ca88178ee98cdfff364bffbabb7)
LICENSE IPL10
FIXES 124223
address race between VCloseVnodeFiles_r and VGetFreeVnode_r
(cherry picked from commit ff795a12c50d0fa59d2b3ad0b383309b9a4e939d)
LICENSE IPL10
FIXES 124178
treat something as unlinked until a rename suceeds, then let that win
(cherry picked from commit af61732e4aaac8e09369addde0ec31a88fad8964)
LICENSE MIT
separate rx debugging from cache manager debugging.
assign bit 5 of the TraceOption registry value to activation of
rx debug output via DebugOutputString().
(cherry picked from commit 50d57f6c7b325cb9576f33845cac60e1523f661e)
LICENSE MIT
confirmed that rx_ReadvProc, rx_WritevProc, and rx_WritevAlloc are
properly implemented for Windows. Add them to the public export list.
Add rx_ReadProc32 and rx_WriteProc32 to the public export list.
(cherry picked from commit 306a7761b3f2f7ec0d2909e1048ecd39e9c9cfd7)
LICENSE MIT
Use the optimized rx_Read32 call instead of the slower rx_Read when
reading 32-bit integer values.
(cherry picked from commit bc558c75dcad12c7f45443c8e191b554b5d0c887)
LICENSE MIT
The WinSock API does not include the Posix recvmsg/sendmsg interfaces.
Beginning with XP/2003 Microsoft began to support WSARecvMsg which is
a mostly compatible implementation of recvmsg. In Vista/2008 Microsoft
began to support WSASendMsg a mostly compatible implementation of sendmsg.
Neither are part of the WinSock API and therefore they must be loaded
at runtime via a WSAIoctl() call to obtain the function pointers.
When the functions are available it is now possible to avoid a large
number of memcpy() calls.
This patch also enables UDP port unreachable messages on XP and above.
(cherry picked from commit a4f63a818eea476efa456132ca6112329ef8a484)
LICENSE MIT
In rx_SlowWritePacket the use of RX_MAXWVECS was incorrect. The
niovecs field is allocated as [RX_MAXWVECS+1] with the 0th element
reserved for the rx header. niovecs[RX_MAXWVECS] is therefore a
valid data buffer and the comparison should be (i <= RX_MAXWVECS).
This error has most likely not been noticed previously because
nothing in the OpenAFS source tree uses this function.
(cherry picked from commit 6e8039e8a55056f19895036ef6784f4fab5ab758)
LICENSE IPL10
FIXES 124211
restructure so we can save info necessary to keep dirty changes across offline
shutdown
(cherry picked from commit 8552f84b8ed0bce52dab1fd168054038d6ce20a9)
LICENSE MIT
Modify the cm_BPlusDirEnum interface:
* add the cm_scache_t * of the directory being enumerated to the
cm_direnum_t object
* remove the cm_scache_t * from the cm_BPlusDirEnumBulkStat call
now that it is part of the cm_direnum_t object
* maintain a reference to the cm_scache_t for the life of the
cm_direnum_t object. This ensures that the object cannot be
recycled while the enumeration is in use.
(cherry picked from commit e42a066da153750077b154e27249b5b4862724db)
LICENSE IPL10
FIXES 124200
make extending a file by lseek make the extension-created parts as cache
chunks
(cherry picked from commit 7a01a35adfc8f3124a259e682ea1555cb9ed7df2)
LICENSE IPL10
FIXES 124180
don't treat any information we forged as being valid while offline as valid
(cherry picked from commit 58ab0e7c58e1e8cde3fd7595d25b3537062276b3)
LICENSE IPL10
FIXES 124142
V_PEEK/V_SECRETLY should not change inUse. servertype based inUse should not
leak past giving back a volume.
(cherry picked from commit 92cf4d996f91e895b8995d41419b32843a40b9fb)