vol: clear ih_synced before dropping lock

in ih_reallyclose() clear ihP->ih_synced before dropped
the IH_LOCK.  ih_reallyclose() is already committed to
performing the OS_SYNC() call.  Failing to clear the ih_synced
flag before dropping the lock permits another thread, the ih_sync_all()
thread for example, to also conclude that it must sync the
file.

Change-Id: Icb928f7d2ec2342a57ed21b440ae0580c980e9d2
Reviewed-on: http://gerrit.openafs.org/3696
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
This commit is contained in:
Jeffrey Altman 2011-01-20 01:23:37 -05:00 committed by Derrick Brashear
parent 6f39035c92
commit 9e689e9609

View File

@ -871,6 +871,7 @@ ih_reallyclose(IHandle_t * ihP)
ihP->ih_refcnt++; /* must not disappear over unlock */
if (ihP->ih_synced) {
FdHandle_t *fdP;
ihP->ih_synced = 0;
IH_UNLOCK;
fdP = IH_OPEN(ihP);
@ -883,7 +884,6 @@ ih_reallyclose(IHandle_t * ihP)
}
osi_Assert(ihP->ih_refcnt > 0);
ihP->ih_synced = 0;
ih_fdclose(ihP);