block: Use macro for cache option names

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Jeff Cody <jcody@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
This commit is contained in:
Kevin Wolf 2015-04-07 16:55:00 +02:00
parent a646836784
commit 54861b9280
2 changed files with 20 additions and 12 deletions

View File

@ -391,13 +391,13 @@ static BlockBackend *blockdev_init(const char *file, QDict *bs_opts,
} }
} }
if (qemu_opt_get_bool(opts, "cache.writeback", true)) { if (qemu_opt_get_bool(opts, BDRV_OPT_CACHE_WB, true)) {
bdrv_flags |= BDRV_O_CACHE_WB; bdrv_flags |= BDRV_O_CACHE_WB;
} }
if (qemu_opt_get_bool(opts, "cache.direct", false)) { if (qemu_opt_get_bool(opts, BDRV_OPT_CACHE_DIRECT, false)) {
bdrv_flags |= BDRV_O_NOCACHE; bdrv_flags |= BDRV_O_NOCACHE;
} }
if (qemu_opt_get_bool(opts, "cache.no-flush", false)) { if (qemu_opt_get_bool(opts, BDRV_OPT_CACHE_NO_FLUSH, false)) {
bdrv_flags |= BDRV_O_NO_FLUSH; bdrv_flags |= BDRV_O_NO_FLUSH;
} }
@ -733,16 +733,16 @@ DriveInfo *drive_new(QemuOpts *all_opts, BlockInterfaceType block_default_type)
} }
/* Specific options take precedence */ /* Specific options take precedence */
if (!qemu_opt_get(all_opts, "cache.writeback")) { if (!qemu_opt_get(all_opts, BDRV_OPT_CACHE_WB)) {
qemu_opt_set_bool(all_opts, "cache.writeback", qemu_opt_set_bool(all_opts, BDRV_OPT_CACHE_WB,
!!(flags & BDRV_O_CACHE_WB), &error_abort); !!(flags & BDRV_O_CACHE_WB), &error_abort);
} }
if (!qemu_opt_get(all_opts, "cache.direct")) { if (!qemu_opt_get(all_opts, BDRV_OPT_CACHE_DIRECT)) {
qemu_opt_set_bool(all_opts, "cache.direct", qemu_opt_set_bool(all_opts, BDRV_OPT_CACHE_DIRECT,
!!(flags & BDRV_O_NOCACHE), &error_abort); !!(flags & BDRV_O_NOCACHE), &error_abort);
} }
if (!qemu_opt_get(all_opts, "cache.no-flush")) { if (!qemu_opt_get(all_opts, BDRV_OPT_CACHE_NO_FLUSH)) {
qemu_opt_set_bool(all_opts, "cache.no-flush", qemu_opt_set_bool(all_opts, BDRV_OPT_CACHE_NO_FLUSH,
!!(flags & BDRV_O_NO_FLUSH), &error_abort); !!(flags & BDRV_O_NO_FLUSH), &error_abort);
} }
qemu_opt_unset(all_opts, "cache"); qemu_opt_unset(all_opts, "cache");
@ -3105,15 +3105,15 @@ QemuOptsList qemu_common_drive_opts = {
.type = QEMU_OPT_STRING, .type = QEMU_OPT_STRING,
.help = "discard operation (ignore/off, unmap/on)", .help = "discard operation (ignore/off, unmap/on)",
},{ },{
.name = "cache.writeback", .name = BDRV_OPT_CACHE_WB,
.type = QEMU_OPT_BOOL, .type = QEMU_OPT_BOOL,
.help = "enables writeback mode for any caches", .help = "enables writeback mode for any caches",
},{ },{
.name = "cache.direct", .name = BDRV_OPT_CACHE_DIRECT,
.type = QEMU_OPT_BOOL, .type = QEMU_OPT_BOOL,
.help = "enables use of O_DIRECT (bypass the host page cache)", .help = "enables use of O_DIRECT (bypass the host page cache)",
},{ },{
.name = "cache.no-flush", .name = BDRV_OPT_CACHE_NO_FLUSH,
.type = QEMU_OPT_BOOL, .type = QEMU_OPT_BOOL,
.help = "ignore any flush requests for the device", .help = "ignore any flush requests for the device",
},{ },{

View File

@ -90,6 +90,14 @@ typedef struct HDGeometry {
#define BDRV_O_CACHE_MASK (BDRV_O_NOCACHE | BDRV_O_CACHE_WB | BDRV_O_NO_FLUSH) #define BDRV_O_CACHE_MASK (BDRV_O_NOCACHE | BDRV_O_CACHE_WB | BDRV_O_NO_FLUSH)
/* Option names of options parsed by the block layer */
#define BDRV_OPT_CACHE_WB "cache.writeback"
#define BDRV_OPT_CACHE_DIRECT "cache.direct"
#define BDRV_OPT_CACHE_NO_FLUSH "cache.no-flush"
#define BDRV_SECTOR_BITS 9 #define BDRV_SECTOR_BITS 9
#define BDRV_SECTOR_SIZE (1ULL << BDRV_SECTOR_BITS) #define BDRV_SECTOR_SIZE (1ULL << BDRV_SECTOR_BITS)
#define BDRV_SECTOR_MASK ~(BDRV_SECTOR_SIZE - 1) #define BDRV_SECTOR_MASK ~(BDRV_SECTOR_SIZE - 1)