Commit baf5602e authored by Kevin Wolf's avatar Kevin Wolf
Browse files

block: Add bdrv_parse_cache_mode()



It's like bdrv_parse_cache_flags(), except that writethrough mode isn't
included in the flags, but returned as a separate bool.

Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
Reviewed-by: default avatarMax Reitz <mreitz@redhat.com>
parent 63785678
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -667,6 +667,23 @@ int bdrv_parse_cache_flags(const char *mode, int *flags)
    return 0;
}

int bdrv_parse_cache_mode(const char *mode, int *flags, bool *writethrough)
{
    int ret = bdrv_parse_cache_flags(mode, flags);
    if (ret < 0) {
        return ret;
    }

    if (*flags & BDRV_O_CACHE_WB) {
        *flags &= ~BDRV_O_CACHE_WB;
        *writethrough = false;
    } else {
        *writethrough = true;
    }

    return 0;
}

/*
 * Returns the options and flags that a temporary snapshot should get, based on
 * the originally requested flags (the originally requested image will have
+1 −0
Original line number Diff line number Diff line
@@ -208,6 +208,7 @@ void bdrv_replace_in_backing_chain(BlockDriverState *old,
                                   BlockDriverState *new);

int bdrv_parse_cache_flags(const char *mode, int *flags);
int bdrv_parse_cache_mode(const char *mode, int *flags, bool *writethrough);
int bdrv_parse_discard_flags(const char *mode, int *flags);
BdrvChild *bdrv_open_child(const char *filename,
                           QDict *options, const char *bdref_key,