• Javier González's avatar
    lightnvm: pblk: verify that cache read is still valid · 07698466
    Javier González authored
    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: default avatarJavier González <javier@cnexlabs.com>
    Signed-off-by: default avatarMatias Bjørling <matias@cnexlabs.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    07698466
pblk-read.c 13.2 KB