summary refs log tree commit diff stats
path: root/scripts
diff options
context:
space:
mode:
authorJeff Cody <jcody@redhat.com>2012-09-20 15:13:17 -0400
committerKevin Wolf <kwolf@redhat.com>2012-09-24 15:15:11 +0200
commitbe028adcedd68ca4d78fdc43e7e2fa4f1cdbc653 (patch)
treea0b6e1f83e5df634dda9323648879e7572784b09 /scripts
parent80dd1aae3657a902d262f5d20a7a3c655b23705e (diff)
downloadfocaccia-qemu-be028adcedd68ca4d78fdc43e7e2fa4f1cdbc653.tar.gz
focaccia-qemu-be028adcedd68ca4d78fdc43e7e2fa4f1cdbc653.zip
block: correctly set the keep_read_only flag
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: Jeff Cody <jcody@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions