From: Derrick Brashear Date: Wed, 16 Jul 2008 05:15:44 +0000 (+0000) Subject: volser-reclone-bring-online-before-giveback-20080716 X-Git-Tag: openafs-devel-1_5_61~964 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=b4ce530d365e97342a92f4a8d59de12b0570c699;p=packages%2Fo%2Fopenafs.git 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 --- diff --git a/src/volser/volprocs.c b/src/volser/volprocs.c index 34c7fef74..7f23d9802 100644 --- a/src/volser/volprocs.c +++ b/src/volser/volprocs.c @@ -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);