• Mike Snitzer's avatar
    dm thin: always return -ENOSPC if no_free_space is set · 94563bad
    Mike Snitzer authored
    If pool has 'no_free_space' set it means a previous allocation already
    determined the pool has no free space (and failed that allocation with
    -ENOSPC).  By always returning -ENOSPC if 'no_free_space' is set, we do
    not allow the pool to oscillate between allocating blocks and then not.
    
    But a side-effect of this determinism is that if a user wants to be able
    to allocate new blocks they'll need to reload the pool's table (to clear
    the 'no_free_space' flag).  This reload will happen automatically if the
    pool's data volume is resized.  But if the user takes action to free a
    lot of space by deleting snapshot volumes, etc the pool will no longer
    allow data allocations to continue without an intervening table reload.
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    Acked-by: default avatarJoe Thornber <ejt@redhat.com>
    Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
    94563bad
dm-thin.c 74.3 KB