• zhangyi (F)'s avatar
    ext4: introduce new metadata buffer read helpers · fa491b14
    zhangyi (F) authored
    The previous patch add clear_buffer_verified() before we read metadata
    block from disk again, but it's rather easy to miss clearing of this bit
    because currently we read metadata buffer through different open codes
    (e.g. ll_rw_block(), bh_submit_read() and invoke submit_bh() directly).
    So, it's time to add common helpers to unify in all the places reading
    metadata buffers instead. This patch add 3 helpers:
    
     - ext4_read_bh_nowait(): async read metadata buffer if it's actually
       not uptodate, clear buffer_verified bit before read from disk.
     - ext4_read_bh(): sync version of read metadata buffer, it will wait
       until the read operation return and check the return status.
     - ext4_read_bh_lock(): try to lock the buffer before read buffer, it
       will skip reading if the buffer is already locked.
    
    After this patch, we need to use these helpers in all the places reading
    metadata buffer instead of different open codes.
    Signed-off-by: default avatarzhangyi (F) <yi.zhang@huawei.com>
    Suggested-by: default avatarJan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20200924073337.861472-3-yi.zhang@huawei.comSigned-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
    fa491b14
ext4.h 123 KB