• J
    block: correctly set the keep_read_only flag · be028adc
    Jeff Cody 提交于
    I believe the bs->keep_read_only flag is supposed to reflect
    the initial open state of the device. If the device is initially
    opened R/O, then commit operations, or reopen operations changing
    to R/W, are prohibited.
    
    Currently, the keep_read_only flag is only accurate for the active
    layer, and its backing file. Subsequent images end up always having
    the keep_read_only flag set.
    
    For instance, what happens now:
    
    [  base  ]  kro = 1, ro = 1
        |
        v
    [ snap-1 ]  kro = 1, ro = 1
        |
        v
    [ snap-2 ]  kro = 0, ro = 1
        |
        v
    [ active ]  kro = 0, ro = 0
    
    What we want:
    
    [  base  ]  kro = 0, ro = 1
        |
        v
    [ snap-1 ]  kro = 0, ro = 1
        |
        v
    [ snap-2 ]  kro = 0, ro = 1
        |
        v
    [ active ]  kro = 0, ro = 0
    Signed-off-by: NJeff Cody <jcody@redhat.com>
    Signed-off-by: NKevin Wolf <kwolf@redhat.com>
    be028adc
block.c 113.4 KB