1. A computer implemented method for temporarily holding cache lines in a write-back coherency data cache, the computer implemented method comprising: receiving an access request from a requesting processor for a memory block; checking a coherency directory to determine if a copy of the memory block is cached in a write-back cache located in a memory controller hardware, wherein the write-back cache is used to hold memory blocks being written back to main memory for a period of time prior to writing the memory blocks to main memory, and wherein an entry in the coherency directory corresponding to the memory block comprises an address tag and cache coherency state of the memory block; responsive to a determination that the cache coherency state of the entry indicates that the memory block is in the write-back cache, removing the memory block from the write-back cache and forwarding the memory block to the requesting processor; and updating the cache coherency state in the entry in the coherency directory corresponding to the memory block based on the requesting processor's intended use of the memory block to form an updated cache coherency state.