DAFS: fix forceDAFS support in salvager
[openafs.git] / src / vol / salvager.c
index 78ad821..883ef07 100644 (file)
@@ -294,10 +294,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
@@ -325,6 +321,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