1. A method comprising: receiving a read request, from a software application at a computing device, to perform a read task relating to a first data block of data stored at a storage device coupled to the computing device, wherein the read task includes reading the first data block; accessing a first reference cryptographic code at a first metadata cache associated with the first data block, wherein accessing includes determining whether the first reference cryptographic code is associated with the first metadata cache being part of a plurality of integrity metadata data blocks, the first reference cryptographic code including an existing hash-based message authentication code (HMAC); calculating a first new cryptographic code relating to the first data block, the first new cryptographic code including a new HMAC; comparing the first new cryptographic code with the first reference cryptographic code; accepting the read request if the first new cryptographic code matches the first reference cryptographic code, wherein accepting includes facilitating the read task; denying the read request if the first new cryptographic code mismatches the first reference cryptographic code, wherein denying includes issuing an error message in response to the read request, wherein if a data block containing the first reference cryptographic code is missing from the first metadata cache, the read request is submitted to facilitate the read task to read the missing data block.