Ticket 211 - Avoid preop range requests non-DNA operations
The previous patch for ticket 211 moved range requests to the preop
callback. The checking for a range overflow is happening for any
operation, not just those that would require DNA to generate a
value. This can cause issues with operations being rejected when
they shouldn't be due to failed range extension requests. This
patch moves the range extension request to only occur if the incoming
operation would require DNA to generate a value.
In addition, we need to check if we've bypassed the threshold in
the preop callback. This check has been added.
Lastly, we need to avoid doing a range extension request from within
a transaction. Even though it is an unlikely case, there was still
the possibility of the betxnpreop triggering a range request. I
changed the code to make a range request impossible while we are
within a transaction.