volser-reclone-bring-online-before-giveback-20080716

LICENSE IPL10
FIXES 107258

when giving back a volume after reclone, make it inService to avoid a race
between callers and the SetFlags RPC
This commit is contained in:
Derrick Brashear 2008-07-16 05:15:44 +00:00
parent 447915ce6a
commit b4ce530d36

View File

@ -843,6 +843,11 @@ VolReClone(struct rx_call *acid, afs_int32 atrans, afs_int32 cloneId)
LogError(error);
goto fail;
}
/* VUpdateVolume succeeded. Mark it in service so there's no window
* between FSYNC_VOL_ON and VolSetFlags where it's offline with no
* specialStatus; this is a reclone and this volume started online
*/
V_inService(clonevp) = 1;
VDetachVolume(&error, clonevp); /* allow file server to get it's hands on it */
clonevp = NULL;
VUpdateVolume(&error, originalvp);