A method, system, computer system, and computer program product to
allocate storage resources among multiple logical volumes. In response to
a request to perform a set of operations on multiple logical volumes, a
set of allocations of available storage space for performing the set of
operations is made. At the time of identifying the storage regions to use
for each allocation, the remaining operations and the storage regions
that would be available for performing the remaining operations are
examined. The rules for implementing each of the logical volumes can be
evaluated as part of this examination. If it is apparent that one of the
remaining operations will fail based upon a particular set of
allocations, space allocated for a previous operation can be de-allocated
and alternative allocations can be examined to find a set of allocations
that enable the request to be performed successfully.