]> git.michaelhowe.org Git - packages/o/openafs.git/commit
Windows: MergeStatus before SyncOpDone
authorJeffrey Altman <jaltman@your-file-system.com>
Mon, 27 Jun 2011 13:31:54 +0000 (09:31 -0400)
committerJeffrey Altman <jaltman@openafs.org>
Tue, 28 Jun 2011 13:28:13 +0000 (06:28 -0700)
commit2b2b647e3299c2dfeb30d2986290e1121d6cb5f3
tree13522da32ea8f904a8088a689aad84c6edcf5801
parent6a9324ad733385d39594c770227809333248251b
Windows: MergeStatus before SyncOpDone

cm_SyncOp/cm_SyncOpDone is used to synchronize the RPC processing
to ensure that calls which are in conflict cannot occur at the
same time but also to ensure that the ordering of operations
is consistent.  cm_MergeStatus() was in many cases executed after
cm_SyncOpDone() removed the synchronization barrier which in turn
permitted status information to be applied out of order.  Side
effects could have included data loss due to client side file
truncation.  More commonly two StoreData RPCs would have their
status information applied out of order forcing the cache manager
to invalidate all of the cached data for the file.

Reviewed-on: http://gerrit.openafs.org/4891
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry-picked from 51fa590e704c77c0e9ba873ecb854448885030a5)

Change-Id: Ic50241081e52b70bf7b6bd7d92df205f7184f7c8
Reviewed-on: http://gerrit.openafs.org/4895
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
src/WINNT/afsd/cm_dcache.c
src/WINNT/afsd/cm_vnodeops.c