1. An apparatus comprising: a memory configured to (i) implement a cache and (ii) store meta-data, said cache comprising one or more cache windows, each of said one or more cache windows comprising a plurality of cache-lines configured to store information, wherein each of said plurality of cache-lines is associated with meta-data indicating one or more of a dirty state and an invalid state; and a controller connected to said memory and configured to detect an input/output (I/O) operation directed to a file system and perform a read-fill based on a hint value when there is a read miss in said cache, wherein said hint value is (i) determined based on the application access pattern and (ii) passed to a caching layer within an unused field of a corresponding I/O request.