From: Derrick Brashear Date: Wed, 8 Dec 2010 02:26:59 +0000 (-0500) Subject: DAFS: fix forceDAFS support in salvager X-Git-Tag: upstream/1.6.0.pre4^2~21 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=c31d20162b3648c2f16286f6ceb09f141abd9207;p=packages%2Fo%2Fopenafs.git DAFS: fix forceDAFS support in salvager we need to get the shared partition lock for the per-volume forceDAFS case Reviewed-on: http://gerrit.openafs.org/3487 Reviewed-by: Andrew Deason Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 81e7a5adf93a6b5eec104ca4bde429cf6cb0548a) Change-Id: Ie7c6a43d25c621a3faca2a6564fbc06f9af87880 Reviewed-on: http://gerrit.openafs.org/4278 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- diff --git a/src/vol/salvager.c b/src/vol/salvager.c index da5c168a4..6439b0fb3 100644 --- a/src/vol/salvager.c +++ b/src/vol/salvager.c @@ -285,10 +285,6 @@ handleit(struct cmd_syndesc *as, void *arock) } #endif - if (get_salvage_lock) { - ObtainSalvageLock(); - } - /* Note: if seenvol we initialize this as a standard volume utility: this has the * implication that the file server may be running; negotations have to be made with * the file server in this case to take the read write volume and associated read-only @@ -316,6 +312,14 @@ handleit(struct cmd_syndesc *as, void *arock) Exit(1); } + /* defer lock until we init volume package */ + if (get_salvage_lock) { + if (seenvol && AskDAFS()) /* support forceDAFS */ + ObtainSharedSalvageLock(); + else + ObtainSalvageLock(); + } + /* * Ok to defer this as Exit will clean up and no real work is done * init'ing volume package