[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 10/23] block: Make 'replication_state' an enum
From: |
Michael Tokarev |
Subject: |
[Qemu-devel] [PULL 10/23] block: Make 'replication_state' an enum |
Date: |
Sun, 7 May 2017 10:02:13 +0300 |
From: Fam Zheng <address@hidden>
BDRVReplicationState.replication_state is a name with a bit of
duplication, plus it could be an enum like BDRVReplicationState.mode,
which is more readable and also more straightforward in a debugger.
Rename it, and improve the type while at it.
Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Michael Tokarev <address@hidden>
---
block/replication.c | 44 ++++++++++++++++++++++----------------------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/block/replication.c b/block/replication.c
index d300c15475..3885f04c31 100644
--- a/block/replication.c
+++ b/block/replication.c
@@ -22,9 +22,17 @@
#include "qapi/error.h"
#include "replication.h"
+typedef enum {
+ BLOCK_REPLICATION_NONE, /* block replication is not started */
+ BLOCK_REPLICATION_RUNNING, /* block replication is running */
+ BLOCK_REPLICATION_FAILOVER, /* failover is running in background */
+ BLOCK_REPLICATION_FAILOVER_FAILED, /* failover failed */
+ BLOCK_REPLICATION_DONE, /* block replication is done */
+} ReplicationStage;
+
typedef struct BDRVReplicationState {
ReplicationMode mode;
- int replication_state;
+ ReplicationStage stage;
BdrvChild *active_disk;
BdrvChild *hidden_disk;
BdrvChild *secondary_disk;
@@ -36,14 +44,6 @@ typedef struct BDRVReplicationState {
int error;
} BDRVReplicationState;
-enum {
- BLOCK_REPLICATION_NONE, /* block replication is not started */
- BLOCK_REPLICATION_RUNNING, /* block replication is running */
- BLOCK_REPLICATION_FAILOVER, /* failover is running in background */
- BLOCK_REPLICATION_FAILOVER_FAILED, /* failover failed */
- BLOCK_REPLICATION_DONE, /* block replication is done */
-};
-
static void replication_start(ReplicationState *rs, ReplicationMode mode,
Error **errp);
static void replication_do_checkpoint(ReplicationState *rs, Error **errp);
@@ -141,10 +141,10 @@ static void replication_close(BlockDriverState *bs)
{
BDRVReplicationState *s = bs->opaque;
- if (s->replication_state == BLOCK_REPLICATION_RUNNING) {
+ if (s->stage == BLOCK_REPLICATION_RUNNING) {
replication_stop(s->rs, false, NULL);
}
- if (s->replication_state == BLOCK_REPLICATION_FAILOVER) {
+ if (s->stage == BLOCK_REPLICATION_FAILOVER) {
block_job_cancel_sync(s->active_disk->bs->job);
}
@@ -174,7 +174,7 @@ static int64_t replication_getlength(BlockDriverState *bs)
static int replication_get_io_status(BDRVReplicationState *s)
{
- switch (s->replication_state) {
+ switch (s->stage) {
case BLOCK_REPLICATION_NONE:
return -EIO;
case BLOCK_REPLICATION_RUNNING:
@@ -403,7 +403,7 @@ static void backup_job_completed(void *opaque, int ret)
BlockDriverState *bs = opaque;
BDRVReplicationState *s = bs->opaque;
- if (s->replication_state != BLOCK_REPLICATION_FAILOVER) {
+ if (s->stage != BLOCK_REPLICATION_FAILOVER) {
/* The backup job is cancelled unexpectedly */
s->error = -EIO;
}
@@ -445,7 +445,7 @@ static void replication_start(ReplicationState *rs,
ReplicationMode mode,
aio_context_acquire(aio_context);
s = bs->opaque;
- if (s->replication_state != BLOCK_REPLICATION_NONE) {
+ if (s->stage != BLOCK_REPLICATION_NONE) {
error_setg(errp, "Block replication is running or done");
aio_context_release(aio_context);
return;
@@ -545,7 +545,7 @@ static void replication_start(ReplicationState *rs,
ReplicationMode mode,
abort();
}
- s->replication_state = BLOCK_REPLICATION_RUNNING;
+ s->stage = BLOCK_REPLICATION_RUNNING;
if (s->mode == REPLICATION_MODE_SECONDARY) {
secondary_do_checkpoint(s, errp);
@@ -581,7 +581,7 @@ static void replication_get_error(ReplicationState *rs,
Error **errp)
aio_context_acquire(aio_context);
s = bs->opaque;
- if (s->replication_state != BLOCK_REPLICATION_RUNNING) {
+ if (s->stage != BLOCK_REPLICATION_RUNNING) {
error_setg(errp, "Block replication is not running");
aio_context_release(aio_context);
return;
@@ -601,7 +601,7 @@ static void replication_done(void *opaque, int ret)
BDRVReplicationState *s = bs->opaque;
if (ret == 0) {
- s->replication_state = BLOCK_REPLICATION_DONE;
+ s->stage = BLOCK_REPLICATION_DONE;
/* refresh top bs's filename */
bdrv_refresh_filename(bs);
@@ -610,7 +610,7 @@ static void replication_done(void *opaque, int ret)
s->hidden_disk = NULL;
s->error = 0;
} else {
- s->replication_state = BLOCK_REPLICATION_FAILOVER_FAILED;
+ s->stage = BLOCK_REPLICATION_FAILOVER_FAILED;
s->error = -EIO;
}
}
@@ -625,7 +625,7 @@ static void replication_stop(ReplicationState *rs, bool
failover, Error **errp)
aio_context_acquire(aio_context);
s = bs->opaque;
- if (s->replication_state != BLOCK_REPLICATION_RUNNING) {
+ if (s->stage != BLOCK_REPLICATION_RUNNING) {
error_setg(errp, "Block replication is not running");
aio_context_release(aio_context);
return;
@@ -633,7 +633,7 @@ static void replication_stop(ReplicationState *rs, bool
failover, Error **errp)
switch (s->mode) {
case REPLICATION_MODE_PRIMARY:
- s->replication_state = BLOCK_REPLICATION_DONE;
+ s->stage = BLOCK_REPLICATION_DONE;
s->error = 0;
break;
case REPLICATION_MODE_SECONDARY:
@@ -648,12 +648,12 @@ static void replication_stop(ReplicationState *rs, bool
failover, Error **errp)
if (!failover) {
secondary_do_checkpoint(s, errp);
- s->replication_state = BLOCK_REPLICATION_DONE;
+ s->stage = BLOCK_REPLICATION_DONE;
aio_context_release(aio_context);
return;
}
- s->replication_state = BLOCK_REPLICATION_FAILOVER;
+ s->stage = BLOCK_REPLICATION_FAILOVER;
commit_active_start(NULL, s->active_disk->bs, s->secondary_disk->bs,
BLOCK_JOB_INTERNAL, 0, BLOCKDEV_ON_ERROR_REPORT,
NULL, replication_done, bs, true, errp);
--
2.11.0
- [Qemu-devel] [PULL 14/23] virtio-blk: Remove useless condition around g_free(), (continued)
- [Qemu-devel] [PULL 14/23] virtio-blk: Remove useless condition around g_free(), Michael Tokarev, 2017/05/07
- [Qemu-devel] [PULL 15/23] hw/core/generic-loader: Fix crash when running without CPU, Michael Tokarev, 2017/05/07
- [Qemu-devel] [PULL 23/23] tests: Remove redundant assignment, Michael Tokarev, 2017/05/07
- [Qemu-devel] [PULL 06/23] usb-ccid: make ccid_write_data_block() cope with null buffers, Michael Tokarev, 2017/05/07
- [Qemu-devel] [PULL 19/23] tests: Ignore another built executable (test-hmp), Michael Tokarev, 2017/05/07
- [Qemu-devel] [PULL 13/23] qemu-doc: Fix broken URLs of amnhltm.zip and dosidle210.zip, Michael Tokarev, 2017/05/07
- [Qemu-devel] [PULL 04/23] Add 'none' as type for drive's if option, Michael Tokarev, 2017/05/07
- [Qemu-devel] [PULL 02/23] ppc_booke: drop useless assignment, Michael Tokarev, 2017/05/07
- [Qemu-devel] [PULL 07/23] device_tree: fix compiler warnings (clang 5), Michael Tokarev, 2017/05/07
- [Qemu-devel] [PULL 22/23] MAINTAINERS: Update paths for AioContext implementation, Michael Tokarev, 2017/05/07
- [Qemu-devel] [PULL 10/23] block: Make 'replication_state' an enum,
Michael Tokarev <=
- [Qemu-devel] [PULL 18/23] scripts: Switch to more portable Perl shebang, Michael Tokarev, 2017/05/07
- [Qemu-devel] [PULL 17/23] scripts/qemu-binfmt-conf.sh: Fix shell portability issue, Michael Tokarev, 2017/05/07
- [Qemu-devel] [PULL 16/23] virtfs: allow a device id to be specified in the -virtfs option, Michael Tokarev, 2017/05/07
- [Qemu-devel] [PULL 03/23] doc: fix function spelling, Michael Tokarev, 2017/05/07
- [Qemu-devel] [PULL 21/23] MAINTAINERS: Update paths for main loop, Michael Tokarev, 2017/05/07
- [Qemu-devel] [PULL 20/23] jazz_led: fix bad snprintf, Michael Tokarev, 2017/05/07
- [Qemu-devel] [PULL 05/23] tests: Ignore more test executables, Michael Tokarev, 2017/05/07
- Re: [Qemu-devel] [PULL 00/23] Trivial patches for 2017-05-07, no-reply, 2017/05/07
- Re: [Qemu-devel] [PULL 00/23] Trivial patches for 2017-05-07, Stefan Hajnoczi, 2017/05/08