• Qu Wenruo's avatar
    btrfs: fix the comment on lock_extent_buffer_for_io · a3efb2f0
    Qu Wenruo authored
    The return value of that function is completely wrong.
    
    That function only returns 0 if the extent buffer doesn't need to be
    submitted.  The "ret = 1" and "ret = 0" are determined by the return
    value of "test_and_clear_bit(EXTENT_BUFFER_DIRTY, &eb->bflags)".
    
    And if we get ret == 1, it's because the extent buffer is dirty, and we
    set its status to EXTENT_BUFFER_WRITE_BACK, and continue to page
    locking.
    
    While if we get ret == 0, it means the extent is not dirty from the
    beginning, so we don't need to write it back.
    
    The caller also follows this, in btree_write_cache_pages(), if
    lock_extent_buffer_for_io() returns 0, we just skip the extent buffer
    completely.
    
    So the comment is completely wrong.
    
    Since we're here, also change the description a little.  The write bio
    flushing won't be visible to the caller, thus it's not an major feature.
    In the main description, only describe the locking part to make the
    point more clear.
    
    For reference, added in commit 2e3c2513 ("btrfs: extent_io: add
    proper error handling to lock_extent_buffer_for_io()")
    Signed-off-by: default avatarQu Wenruo <wqu@suse.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    a3efb2f0
extent_io.c 157 KB