diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 75dfab56c8c84d8c6ce78398c85fa56091c83530..dbc590ad87042bcca799c37ad1765c3b274418ac 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -4814,6 +4814,11 @@ class LUOobCommand(NoHooksLU):
       locking.LEVEL_NODE: lock_names,
       }
 
+    if not self.op.node_names:
+      # Acquire node allocation lock only if all nodes are affected
+      self.needed_locks[locking.LEVEL_NODE_ALLOC] = locking.ALL_SET
+      self.share_locks[locking.LEVEL_NODE_ALLOC] = 1
+
   def CheckPrereq(self):
     """Check prerequisites.