dafs-vol-offline-status-20080925
authorMax Cohan <max@endpoint.com>
Thu, 25 Sep 2008 09:57:39 +0000 (09:57 +0000)
committerDerrick Brashear <shadow@dementia.org>
Thu, 25 Sep 2008 09:57:39 +0000 (09:57 +0000)
commitb5a6e4bf36dbb2099f17318ae09ff38a25687c5f
treeee5c47ab330e0980b179869c8031f7b44b8b865c
parent1659861640035f5405429194e72665839cff3720
dafs-vol-offline-status-20080925

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
src/volser/volprocs.c