Windows: correct CheckOfflineVolumeState logic
authorJeffrey Altman <jaltman@your-file-system.com>
Tue, 30 Aug 2011 13:49:11 +0000 (09:49 -0400)
committerJeffrey Altman <jaltman@openafs.org>
Tue, 30 Aug 2011 15:30:13 +0000 (08:30 -0700)
Do not blindly set the return 'online' state to TRUE if
the state has not in fact changed.

Do not blindly clear the 'alldown' flag without checking the
actual 'down' state of the file server.

Change-Id: Iaad401be067513e2bf42609f0b0d407ba5c6302d
Reviewed-on: http://gerrit.openafs.org/5323
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>

src/WINNT/afsd/cm_volume.c

index fdab257..3971167 100644 (file)
@@ -1244,8 +1244,9 @@ cm_CheckOfflineVolumeState(cm_volume_t *volp, cm_vol_state_t *statep, afs_uint32
                     continue;
 
                 alldeleted = 0;
-                *onlinep = 1;
-                alldown = 0;
+
+                if (!(serversp->server->flags & CM_SERVERFLAG_DOWN))
+                    alldown = 0;
 
                 if (serversp->status == srv_busy || serversp->status == srv_offline)
                     serversp->status = srv_not_busy;