viced: fix missing host lock in h_Enumerate

The global host lock must be held over h_Release_r. Fix the
the case in h_Enumerate where h_Release_r is called without
the global host lock held.

Change-Id: I010338edf0a515f543e3468afff907e97eb07163
Reviewed-on: http://gerrit.openafs.org/3294
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
This commit is contained in:
Michael Meffie 2010-11-11 12:17:05 -05:00 committed by Derrick Brashear
parent fabd590cc4
commit c8dc68299d

View File

@ -1014,7 +1014,9 @@ h_Enumerate(int (*proc) (struct host*, int, void *), void *param)
H_UNLOCK;
for (i = 0; i < count; i++) {
flags[i] = (*proc) (list[i], flags[i], param);
H_LOCK;
h_Release_r(list[i]);
H_UNLOCK;
/* bail out of the enumeration early */
if (H_ENUMERATE_ISSET_BAIL(flags[i]))
break;