]> git.michaelhowe.org Git - packages/o/openafs.git/commit
DAFS: Fix VOL_QUERY_VOP error codes
authorAndrew Deason <adeason@sinenomine.net>
Wed, 8 Dec 2010 18:41:44 +0000 (12:41 -0600)
committerDerrick Brashear <shadow@dementia.org>
Tue, 1 Feb 2011 04:12:48 +0000 (20:12 -0800)
commit5d400f224c843d854eebbe7b76bd83a570c5c6ff
treeb466bde137e46629c1076cb94b251dd796776540
parentbde0c76e2d17b9da517f9df783a661cf3da70625
DAFS: Fix VOL_QUERY_VOP error codes

Volumes in the VOL_STATE_DELETED state effectively do not exist. So,
when receiving an FSYNC_VOL_QUERY_VOP request for a volume, report
FSYNC_UNKNOWN_VOLID for a volume in the VOL_STATE_DELETED state.
Similarly, if the volume exists but on a different partition, we
should return the FSYNC_WRONG_PART reason code.

This allows volumes to be usable by the volume server in some corner
cases. For example, when a volume X exists on partitions A and B, and
the volserver deletes X on B. The fileserver then puts volume X in the
DELETED state, allowing checkouts over fsync, but FSYNC_VOL_QUERY_VOP
reports that no vop exists.

With this change, FSYNC_VOL_QUERY_VOP will instead report that the
volume does not exist, and so FSYNC_VerifyCheckout can succeed for
such volumes.

Reviewed-on: http://gerrit.openafs.org/3493
Reviewed-by: Tom Keiser <tkeiser@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit 95fc9ece507d3c5bd7914afadaaae9456eea9b7a)

Change-Id: I37e2740af4ad257398325007a1d1e1e4ba3bae45
Reviewed-on: http://gerrit.openafs.org/3798
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/vol/fssync-client.c
src/vol/fssync-server.c