• Andreas Gruenbacher's avatar
    gfs2: Add per-reservation reserved block accounting · 725d0e9d
    Andreas Gruenbacher authored
    Add a rs_reserved field to struct gfs2_blkreserv to keep track of the number of
    blocks reserved by this particular reservation, and a rd_reserved field to
    struct gfs2_rgrpd to keep track of the total number of reserved blocks in the
    resource group.  Those blocks are exclusively reserved, as opposed to the
    rs_requested / rd_requested blocks which are tracked in the reservation tree
    (rd_rstree) and which can be stolen if necessary.
    
    When making a reservation with gfs2_inplace_reserve, rs_reserved is set to
    somewhere between ap->min_target and ap->target depending on the number of free
    blocks in the resource group.  When allocating blocks with gfs2_alloc_blocks,
    rs_reserved is decremented accordingly.  Eventually, any reserved but not
    consumed blocks are returned to the resource group by gfs2_inplace_release.
    Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
    725d0e9d
rgrp.c 71.9 KB