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>
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);
}
osi_Assert(ihP->ih_refcnt > 0);
- ihP->ih_synced = 0;
ih_fdclose(ihP);