• Andreas Gruenbacher's avatar
    gfs2: Fix loop in gfs2_rbm_find (v2) · 71921ef8
    Andreas Gruenbacher authored
    Fix the resource group wrap-around logic in gfs2_rbm_find that commit
    e579ed4f broke.  The bug can lead to unnecessary repeated scanning of the
    same bitmaps; there is a risk that future changes will turn this into an
    endless loop.
    
    This is an updated version of commit 2d29f6b9 ("gfs2: Fix loop in
    gfs2_rbm_find") which ended up being reverted because it introduced a
    performance regression in iozone (see commit e74c98ca).  Changes since v1:
    
     - Simplify the wrap-around logic.
    
     - Handle the case where each resource group only has a single bitmap block
       (small filesystem).
    
     - Update rd_extfail_pt whenever we scan the entire bitmap, even when we don't
       start the scan at the very beginning of the bitmap.
    
    Fixes: e579ed4f ("GFS2: Introduce rbm field bii")
    Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
    71921ef8
rgrp.c 71.3 KB