• J
    lightnvm: pblk: verify that cache read is still valid · 07698466
    Javier González 提交于
    When a read is directed to the cache, we risk that the lba has been
    updated during the time we made the L2P table lookup and the time we are
    actually reading form the cache. We intentionally not hold the L2P lock
    not to block other threads.
    
    While strict ordering is not a guarantee at this level (unless REQ_FLUSH
    has been previously issued), we have experience that some databases that
    have recently implemented direct I/O support, issue metadata reads very
    close to the writes, without issuing a fsync in the middle. An easy way
    to support them while they is to make an extra effort and check the L2P
    map right before reading the cache.
    Signed-off-by: NJavier González <javier@cnexlabs.com>
    Signed-off-by: NMatias Bjørling <matias@cnexlabs.com>
    Signed-off-by: NJens Axboe <axboe@kernel.dk>
    07698466
pblk.h 35.5 KB