mirror of
https://git.openafs.org/openafs.git
synced 2025-01-21 00:10:15 +00:00
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:
parent
6f39035c92
commit
9e689e9609
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user