1. A method for preventing concurrent execution of conflicting software operations on the same and different storage processors while avoiding deadlocks, the method comprising: (a) providing a first and a second instance of a first software utility for respectively executing on a first and a second storage processor having access to a storage medium; (b) providing a first and a second instance of a second software utility for respectively executing on the first and the second storage processor and providing a lock to the instances of the first software utility; (c) wherein when one of the first instances of the first software utility obtains the lock, the obtaining of the lock makes exclusive: the operation of checking whether an activity query, which indicates that one of the instances of the second software utility is starting, has been received from one of the instances of the second software utility; and the operation of receiving the activity query from one of the instances of the second software utility, such that holding the lock by an instance of the first software utility to check for reception of the activity query prevents an instance of the second software utility from communicating the activity query to the instance of the first software utility while the instance of the first software utility is checking whether the activity query has been received; and (d) failing a first operation implemented by the first software utility in response to receiving the activity query initiated by a second operation implemented by one of the instances of the second software utility before the checking occurs.