]> git.michaelhowe.org Git - packages/o/openafs.git/commit
libafs: Set tvcp->callback before BulkStatus
authorAndrew Deason <adeason@sinenomine.net>
Thu, 12 Aug 2010 19:38:55 +0000 (14:38 -0500)
committerDerrick Brashear <shadow@dementix.org>
Wed, 2 Nov 2011 02:30:04 +0000 (19:30 -0700)
commitf6168a849cbb5bde34cec11e02df54481fc5d3ca
treecbe959782e032c615373db7be24a6d7d0d977608
parent651dd6d25e307f08ab63080b0afdba4762ad2bb5
libafs: Set tvcp->callback before BulkStatus

When we call InlineBulkStatus or BulkStatus, we currently do not touch
tvcp->callback for any of the vcaches before making the call. This can
cause us to not notice an InitCallBackState issued by the fileserver
before the BulkStatus call returns, since the InitCallBackState
handler looks at tvcp->callback to determine what vcaches to clear
callbacks for. In turn, this can cause us to think we have a callback
agreement with the fileserver on one of the BulkStatus'd files, when
the fileserver does not actually have such a callback agreement.

So, set tvcp->callback to the server we are contacting, so if we get
an InitCallBackState call from that fileserver, the CBulkFetching
state will be cleared, and we will correctly discard the callback
information for that vcache.

Reviewed-on: http://gerrit.openafs.org/2548
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit 37817796c4890683a7e41ed0f3a2fa6a53e1edc7)

Change-Id: I85c89eff061af799a7d8f612bee9b2f182312e6f
Reviewed-on: http://gerrit.openafs.org/5754
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>
src/afs/VNOPS/afs_vnop_lookup.c