• Qu Wenruo's avatar
    btrfs: Remove false alert when fiemap range is smaller than on-disk extent · 848c23b7
    Qu Wenruo authored
    Commit 4751832d ("btrfs: fiemap: Cache and merge fiemap extent before
    submit it to user") introduced a warning to catch unemitted cached
    fiemap extent.
    
    However such warning doesn't take the following case into consideration:
    
    0			4K			8K
    |<---- fiemap range --->|
    |<----------- On-disk extent ------------------>|
    
    In this case, the whole 0~8K is cached, and since it's larger than
    fiemap range, it break the fiemap extent emit loop.
    This leaves the fiemap extent cached but not emitted, and caught by the
    final fiemap extent sanity check, causing kernel warning.
    
    This patch removes the kernel warning and renames the sanity check to
    emit_last_fiemap_cache() since it's possible and valid to have cached
    fiemap extent.
    Reported-by: default avatarDavid Sterba <dsterba@suse.cz>
    Reported-by: default avatarAdam Borowski <kilobyte@angband.pl>
    Fixes: 4751832d ("btrfs: fiemap: Cache and merge fiemap extent ...")
    Signed-off-by: default avatarQu Wenruo <quwenruo@cn.fujitsu.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    848c23b7
extent_io.c 152 KB