LICENSE IPL10
FIXES 113558
avoid case where revalidate saw a mountpoint which hadn't been rewritten yet
and failed to handle it, exposing ENOENT where the entry existed.
(cherry picked from commit b3bf4b89e345b991984a416d97e3f9aeacc0e159)
LICENSE IPL10
issue suggested by Chaskiel Grundman; while it should not have been an issue
we now behave usefully in the notruncate recovery code.
(cherry picked from commit fe0186dccd4e4d16c0610f211d454a90b0841a83)
LICENSE IPL10
work harder to ferret out corruption; still reruns itself so if 2 hash chains
are comingled they get split back out correctly without having to flush state
continuously
(cherry picked from commit 1e3674cafe3c3feea0840c531cc0461d358f87c6)
LICENSE IPL10
we had something which fakestat was faking, but the inode had no ops, so
we ended up ENOTDIRing. oops.
(cherry picked from commit 2cfe5d555e2e9eaedf5107a34d5a2f74092b98b1)
LICENSE MIT
re-order the lock hierarchyfor smb_Dir_Watch_Lock so that the
lock does not have to be dropped when sending notifications
within smb_NotifyChange().
(cherry picked from commit 38800039a7039c3fa832718799667557a5e24f66)
LICENSE MIT
in rxi_WriteProc() make sure that rx_call currentPacket is
set to NULL after the rx_packet is added to a queue or
passed to rx_freePacket(). Otherwise we will panic when
we attempt to call rx_freePacket twice on the same packet.
(cherry picked from commit 1e7203940456e783aad215e939c04ed01dd45599)
LICENSE IPL10
don't potentially leak packets by leaving them behind and initing queues;
in fact, if you are cleaning up there is no need to init queues anyway.
(cherry picked from commit 8b50c9d9e3d181f749d0982f57410a5b4906627c)
LICENSE IPL10
flag packets for all queues, and when they are currentPacket somewhere
(cherry picked from commit 559ea99b1e6e6e82ec6a77541ef9844ccc764de8)
LICENSE IPL10
don't potentially leak packets by leaving them behind and initing queues;
in fact, if you are cleaning up there is no need to init queues anyway.
(cherry picked from commit a72eea6bb1758678d25528cd1ab9b439ade2f844)
LICENSE IPL10
avoid using the same name for the struct and the global so the windows debugger
works usefully
(cherry picked from commit 7a4041f9404ff27f3e446d7b523086e0938dc6b9)
LICENSE IPL10
when currentPacket is empty, avoid leaking it and instead free and NULL it
(cherry picked from commit 883683fc317c5196f2eea1c1baed3b510771f001)
LICENSE IPL10
make disconnected code not be compiled in (and break) when you don't have it ena
bled
(cherry picked from commit 84b423e932e05bd6ffb64729900f518091f26ef1)
LICENSE IPL10
FIXES 117499
This patch makes several alterations to the DAFS volserver. The two
major changes are:
* a potential information leak whereby random heap contents could be
exported over the four listvolume rpc variants is corrected
* volume online/offline reporting correctly reports in several additional
corner cases (see the comments in FillVolInfo() in src/volser/volprocs.c
for the complete list of cases):
VOL_STATE_SALVSYNC_REQ:
exclusive state while a fileserver is busy requesting a demand
salvage over the SALVSYNC protocol
V_needsSalvaged():
volume disk header field which is asserted when the fileserver
detects that a volume needs to be salvaged
pending volume operation with command code FSYNC_VOL_OFF:
this command code indicates that a volume utility requires
exclusive access to the volume
pending volume operation and VVolOpLeaveOnline_r returned false:
this indicates that a volume operation is in-progress, and the
internal function VVolOpLeaveOnline_r has decided that the volume
cannot be served concurrently with this volume transaction
(cherry picked from commit b5a6e4bf36dbb2099f17318ae09ff38a25687c5f)
LICENSE IPL10
FIXES 117470
Under certain demand salvage scenarios, it is possible for a stale header
to remain cached with the needsSalvaged flag asserted. Although this will
not affect clients accessing the volume over afsint, it is an issue for
volser clients. VAttachVolumeByName in volser will always attempt to pull
the header over FSSYNC before doing a disk read, under the assumption that
a cached entry in the fileserver will be more current than what is on
disk. This patch causes the fileserver to aggresively invalidate disk
header cache entries when a salvage is in-progress.
(cherry picked from commit 1659861640035f5405429194e72665839cff3720)