block: drop BlockBackendRootState::read_only
Instead of keeping additional boolean field, let's store the information in BDRV_O_RDWR bit of BlockBackendRootState::open_flags. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-Id: <20210527154056.70294-4-vsementsov@virtuozzo.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
975da07374
commit
260242a833
@ -1852,7 +1852,7 @@ bool blk_supports_write_perm(BlockBackend *blk)
|
||||
if (bs) {
|
||||
return !bdrv_is_read_only(bs);
|
||||
} else {
|
||||
return !blk->root_state.read_only;
|
||||
return blk->root_state.open_flags & BDRV_O_RDWR;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2269,7 +2269,6 @@ void blk_update_root_state(BlockBackend *blk)
|
||||
assert(blk->root);
|
||||
|
||||
blk->root_state.open_flags = blk->root->bs->open_flags;
|
||||
blk->root_state.read_only = bdrv_is_read_only(blk->root->bs);
|
||||
blk->root_state.detect_zeroes = blk->root->bs->detect_zeroes;
|
||||
}
|
||||
|
||||
@ -2288,12 +2287,7 @@ bool blk_get_detect_zeroes_from_root_state(BlockBackend *blk)
|
||||
*/
|
||||
int blk_get_open_flags_from_root_state(BlockBackend *blk)
|
||||
{
|
||||
int bs_flags;
|
||||
|
||||
bs_flags = blk->root_state.read_only ? 0 : BDRV_O_RDWR;
|
||||
bs_flags |= blk->root_state.open_flags & ~BDRV_O_RDWR;
|
||||
|
||||
return bs_flags;
|
||||
return blk->root_state.open_flags;
|
||||
}
|
||||
|
||||
BlockBackendRootState *blk_get_root_state(BlockBackend *blk)
|
||||
|
@ -583,8 +583,7 @@ static BlockBackend *blockdev_init(const char *file, QDict *bs_opts,
|
||||
|
||||
blk = blk_new(qemu_get_aio_context(), 0, BLK_PERM_ALL);
|
||||
blk_rs = blk_get_root_state(blk);
|
||||
blk_rs->open_flags = bdrv_flags;
|
||||
blk_rs->read_only = read_only;
|
||||
blk_rs->open_flags = bdrv_flags | (read_only ? 0 : BDRV_O_RDWR);
|
||||
blk_rs->detect_zeroes = detect_zeroes;
|
||||
|
||||
qobject_unref(bs_opts);
|
||||
|
@ -1007,7 +1007,6 @@ struct BlockDriverState {
|
||||
|
||||
struct BlockBackendRootState {
|
||||
int open_flags;
|
||||
bool read_only;
|
||||
BlockdevDetectZeroesOptions detect_zeroes;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user