• Zhang Yi's avatar
    fs/buffer: remove __breadahead_gfp() · 214f8796
    Zhang Yi authored
    Patch series "fs/buffer: remove ll_rw_block()", v2.
    
    ll_rw_block() will skip locked buffer before submitting IO, it assumes
    that locked buffer means it is under IO.  This assumption is not always
    true because we cannot guarantee every buffer lock path would submit IO. 
    After commit 88dbcbb3 ("blkdev: avoid migration stalls for blkdev
    pages"), buffer_migrate_folio_norefs() becomes one exceptional case, and
    there may be others.  So ll_rw_block() is not safe on the sync read path,
    we could get false positive EIO return value when filesystem reading
    metadata.  It seems that it could be only used on the readahead path.
    
    Unfortunately, many filesystem misuse the ll_rw_block() on the sync read
    path.  This patch set just remove ll_rw_block() and add new friendly
    helpers, which could prevent false positive EIO on the read metadata path.
    Thanks for the suggestion from Jan, the original discussion is at [1].
    
     patch 1: remove unused helpers in fs/buffer.c
     patch 2: add new bh_read_[*] helpers
     patch 3-11: remove all ll_rw_block() calls in filesystems
     patch 12-14: do some leftover cleanups.
    
    [1]. https://lore.kernel.org/linux-mm/20220825080146.2021641-1-chengzhihao1@huawei.com/
    
    
    This patch (of 14):
    
    No one use __breadahead_gfp() and sb_breadahead_unmovable() any more,
    remove them.
    
    Link: https://lkml.kernel.org/r/20220901133505.2510834-1-yi.zhang@huawei.com
    Link: https://lkml.kernel.org/r/20220901133505.2510834-2-yi.zhang@huawei.com
    
    Signed-off-by: default avatarZhang Yi <yi.zhang@huawei.com>
    Reviewed-by: default avatarJan Kara <jack@suse.cz>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Andreas Gruenbacher <agruenba@redhat.com>
    Cc: Bob Peterson <rpeterso@redhat.com>
    Cc: Evgeniy Dushistov <dushistov@mail.ru>
    Cc: Heming Zhao <ocfs2-devel@oss.oracle.com>
    Cc: Jens Axboe <axboe@kernel.dk>
    Cc: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Theodore Ts'o <tytso@mit.edu>
    Cc: Yu Kuai <yukuai3@huawei.com>
    Cc: Zhihao Cheng <chengzhihao1@huawei.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    214f8796
buffer.c 79.8 KB