On Fri, May 08, 2015 at 07:21:37PM +0200, Kevin Wolf wrote: > Signed-off-by: Kevin Wolf <kw...@redhat.com> > --- > blockdev.c | 24 ++++++++++++------------ > include/block/block.h | 8 ++++++++ > 2 files changed, 20 insertions(+), 12 deletions(-) > > diff --git a/blockdev.c b/blockdev.c > index 5eaf77e..77cbe72 100644 > --- a/blockdev.c > +++ b/blockdev.c > @@ -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; > } > - 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; > } > - 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; > } > > @@ -733,16 +733,16 @@ DriveInfo *drive_new(QemuOpts *all_opts, > BlockInterfaceType block_default_type) > } > > /* Specific options take precedence */ > - if (!qemu_opt_get(all_opts, "cache.writeback")) { > - qemu_opt_set_bool(all_opts, "cache.writeback", > + if (!qemu_opt_get(all_opts, BDRV_OPT_CACHE_WB)) { > + qemu_opt_set_bool(all_opts, BDRV_OPT_CACHE_WB, > !!(flags & BDRV_O_CACHE_WB), &error_abort); > } > - if (!qemu_opt_get(all_opts, "cache.direct")) { > - qemu_opt_set_bool(all_opts, "cache.direct", > + if (!qemu_opt_get(all_opts, BDRV_OPT_CACHE_DIRECT)) { > + qemu_opt_set_bool(all_opts, BDRV_OPT_CACHE_DIRECT, > !!(flags & BDRV_O_NOCACHE), &error_abort); > } > - if (!qemu_opt_get(all_opts, "cache.no-flush")) { > - qemu_opt_set_bool(all_opts, "cache.no-flush", > + if (!qemu_opt_get(all_opts, BDRV_OPT_CACHE_NO_FLUSH)) { > + qemu_opt_set_bool(all_opts, BDRV_OPT_CACHE_NO_FLUSH, > !!(flags & BDRV_O_NO_FLUSH), &error_abort); > } > qemu_opt_unset(all_opts, "cache"); > @@ -3106,15 +3106,15 @@ QemuOptsList qemu_common_drive_opts = { > .type = QEMU_OPT_STRING, > .help = "discard operation (ignore/off, unmap/on)", > },{ > - .name = "cache.writeback", > + .name = BDRV_OPT_CACHE_WB, > .type = QEMU_OPT_BOOL, > .help = "enables writeback mode for any caches", > },{ > - .name = "cache.direct", > + .name = BDRV_OPT_CACHE_DIRECT, > .type = QEMU_OPT_BOOL, > .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, > .help = "ignore any flush requests for the device", > },{ > diff --git a/include/block/block.h b/include/block/block.h > index 7d1a717..86bdac8 100644 > --- a/include/block/block.h > +++ b/include/block/block.h > @@ -90,6 +90,14 @@ typedef struct HDGeometry { > > #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_SIZE (1ULL << BDRV_SECTOR_BITS) > #define BDRV_SECTOR_MASK ~(BDRV_SECTOR_SIZE - 1) > -- > 1.8.3.1 > >
Reviewed-by: Jeff Cody <jc...@redhat.com>