]> git.michaelhowe.org Git - packages/o/openafs.git/commit
Windows: force vldb lookup if server list is empty
authorJeffrey Altman <jaltman@your-file-system.com>
Wed, 20 Jun 2012 04:05:44 +0000 (00:05 -0400)
committerJeffrey Altman <jaltman@your-file-system.com>
Tue, 3 Jul 2012 16:05:56 +0000 (09:05 -0700)
commitae25cf277c8d70da0e6666316baf98d5c117a03b
treef6d90dbba9b13dfe48f22a9414d8efed2895491a
parente0b9b89dd98d0bf449556e3f28b479dd61e7eb95
Windows: force vldb lookup if server list is empty

The Windows cache manager can mark server references as "deleted"
which can give the impression that a server reference list is not
empty when it is.  If the volume list is empty any attempt to
issue an RPC would fail with a CM_ERROR_ALLDOWN error.  Since the
VLDB data is current, this condition will remain for two hours.

This patchset adds a new error, CM_ERROR_EMPTY, which is returned
when the server reference list is empty.  cm_Analyze() is modified
to process the CM_ERROR_EMPTY error by attempting to update the
server reference list.  If the update succeeds and the list is no
longer empty, the RPC is retried.  Otherwise, the RPC fails as
before.

Change-Id: I13891c28ec9916bdd03c1b02e1c9049ed0581ed3
Reviewed-on: http://gerrit.openafs.org/7637
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
14 files changed:
src/WINNT/afsd/cm_callback.c
src/WINNT/afsd/cm_cell.c
src/WINNT/afsd/cm_conn.c
src/WINNT/afsd/cm_conn.h
src/WINNT/afsd/cm_dcache.c
src/WINNT/afsd/cm_error.h
src/WINNT/afsd/cm_ioctl.c
src/WINNT/afsd/cm_server.c
src/WINNT/afsd/cm_server.h
src/WINNT/afsd/cm_vnodeops.c
src/WINNT/afsd/cm_volume.c
src/WINNT/afsd/cm_volume.h
src/WINNT/afsd/smb.c
src/WINNT/afsrdr/user/RDRFunction.c