• A
    dm: bind new table before destroying old · a7940155
    Alasdair G Kergon 提交于
    When replacing a mapped device's table during a 'resume', delay the
    destruction of the old table until the new one is successfully in place.
    
    This will make it easier for a later patch to transfer internal state
    information from the old table to the new one (something we do not currently
    support) while giving us more options for reversion if a later part
    of the operation fails.
    
    Devices are always in the suspended state during dm_swap_table().
    This patch reinforces the requirement that all I/O must have been
    flushed from the table targets while in this state (including any in
    workqueues).  In the case of 'noflush' suspending, unprocessed
    I/O should have been 'pushed back' to the dm core prior to this point,
    for resubmission after the new table is in place.
    Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
    a7940155
dm-table.c 27.6 KB