mirror of
https://git.openafs.org/openafs.git
synced 2025-01-19 23:40:13 +00:00
dafs-vol-updates-20080210
LICENSE IPL10 make sure status is consistent in vol package when doing dafs
This commit is contained in:
parent
d7235b1493
commit
c61712de68
@ -826,6 +826,7 @@ FSYNC_com_VolDone(FSSYNC_VolOp_command * vcom, SYNC_response * res)
|
||||
#ifdef AFS_DEMAND_ATTACH_FS
|
||||
vp = VLookupVolume_r(&error, vcom->vop->volume, NULL);
|
||||
if (vp) {
|
||||
VChangeState_r(vp, VOL_STATE_UNATTACHED);
|
||||
VDeregisterVolOp_r(vp);
|
||||
}
|
||||
#endif
|
||||
|
@ -1646,17 +1646,16 @@ VPreAttachVolumeByVp_r(Error * ec,
|
||||
/* check to see if pre-attach already happened */
|
||||
if (vp &&
|
||||
(V_attachState(vp) != VOL_STATE_UNATTACHED) &&
|
||||
!VIsErrorState(V_attachState(vp)) &&
|
||||
((V_attachState(vp) != VOL_STATE_PREATTACHED) ||
|
||||
vp->pending_vol_op == NULL)) {
|
||||
(V_attachState(vp) != VOL_STATE_PREATTACHED) &&
|
||||
!VIsErrorState(V_attachState(vp))) {
|
||||
/*
|
||||
* pre-attach is a no-op in all but the following cases:
|
||||
*
|
||||
* - volume is unattached
|
||||
* - volume is in an error state
|
||||
* - volume is pre-attached with a pending volume operation
|
||||
* (e.g. vos move between two partitions on same server)
|
||||
* - volume is pre-attached
|
||||
*/
|
||||
Log("VPreattachVolumeByVp_r: volume %u not in quiescent state\n", vid);
|
||||
goto done;
|
||||
} else if (vp) {
|
||||
/* we're re-attaching a volume; clear out some old state */
|
||||
|
@ -487,6 +487,7 @@ VolDeleteVolume(struct rx_call *acid, afs_int32 atrans)
|
||||
strcpy(tt->lastProcName, "DeleteVolume");
|
||||
tt->rxCallPtr = acid;
|
||||
VPurgeVolume(&error, tt->volume); /* don't check error code, it is not set! */
|
||||
V_destroyMe(tt->volume) = DESTROY_ME; /* so endtrans does the right fssync opcode */
|
||||
tt->vflags |= VTDeleted; /* so we know not to do anything else to it */
|
||||
tt->rxCallPtr = (struct rx_call *)0;
|
||||
if (TRELE(tt))
|
||||
|
Loading…
Reference in New Issue
Block a user