Skip to content

Commit

Permalink
block: Remove bdrv_recurse_is_first_non_filter()
Browse files Browse the repository at this point in the history
It no longer has any users.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20200218103454.296704-11-mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
  • Loading branch information
XanClic authored and kevmw committed Feb 18, 2020
1 parent 810803a commit 6b4907c
Show file tree
Hide file tree
Showing 9 changed files with 0 additions and 111 deletions.
33 changes: 0 additions & 33 deletions block.c
Expand Up @@ -6201,39 +6201,6 @@ int bdrv_amend_options(BlockDriverState *bs, QemuOpts *opts,
return bs->drv->bdrv_amend_options(bs, opts, status_cb, cb_opaque, errp);
}

/* This function will be called by the bdrv_recurse_is_first_non_filter method
* of block filter and by bdrv_is_first_non_filter.
* It is used to test if the given bs is the candidate or recurse more in the
* node graph.
*/
bool bdrv_recurse_is_first_non_filter(BlockDriverState *bs,
BlockDriverState *candidate)
{
/* return false if basic checks fails */
if (!bs || !bs->drv) {
return false;
}

/* the code reached a non block filter driver -> check if the bs is
* the same as the candidate. It's the recursion termination condition.
*/
if (!bs->drv->is_filter) {
return bs == candidate;
}
/* Down this path the driver is a block filter driver */

/* If the block filter recursion method is defined use it to recurse down
* the node graph.
*/
if (bs->drv->bdrv_recurse_is_first_non_filter) {
return bs->drv->bdrv_recurse_is_first_non_filter(bs, candidate);
}

/* the driver is a block filter but don't allow to recurse -> return false
*/
return false;
}

/*
* This function checks whether the given @to_replace is allowed to be
* replaced by a node that always shows the same data as @bs. This is
Expand Down
15 changes: 0 additions & 15 deletions block/blkverify.c
Expand Up @@ -268,20 +268,6 @@ static int blkverify_co_flush(BlockDriverState *bs)
return bdrv_co_flush(s->test_file->bs);
}

static bool blkverify_recurse_is_first_non_filter(BlockDriverState *bs,
BlockDriverState *candidate)
{
BDRVBlkverifyState *s = bs->opaque;

bool perm = bdrv_recurse_is_first_non_filter(bs->file->bs, candidate);

if (perm) {
return true;
}

return bdrv_recurse_is_first_non_filter(s->test_file->bs, candidate);
}

static bool blkverify_recurse_can_replace(BlockDriverState *bs,
BlockDriverState *to_replace)
{
Expand Down Expand Up @@ -341,7 +327,6 @@ static BlockDriver bdrv_blkverify = {
.bdrv_co_flush = blkverify_co_flush,

.is_filter = true,
.bdrv_recurse_is_first_non_filter = blkverify_recurse_is_first_non_filter,
.bdrv_recurse_can_replace = blkverify_recurse_can_replace,
};

Expand Down
9 changes: 0 additions & 9 deletions block/copy-on-read.c
Expand Up @@ -118,13 +118,6 @@ static void cor_lock_medium(BlockDriverState *bs, bool locked)
}


static bool cor_recurse_is_first_non_filter(BlockDriverState *bs,
BlockDriverState *candidate)
{
return bdrv_recurse_is_first_non_filter(bs->file->bs, candidate);
}


static BlockDriver bdrv_copy_on_read = {
.format_name = "copy-on-read",

Expand All @@ -143,8 +136,6 @@ static BlockDriver bdrv_copy_on_read = {

.bdrv_co_block_status = bdrv_co_block_status_from_file,

.bdrv_recurse_is_first_non_filter = cor_recurse_is_first_non_filter,

.has_variable_length = true,
.is_filter = true,
};
Expand Down
9 changes: 0 additions & 9 deletions block/filter-compress.c
Expand Up @@ -128,13 +128,6 @@ static void compress_lock_medium(BlockDriverState *bs, bool locked)
}


static bool compress_recurse_is_first_non_filter(BlockDriverState *bs,
BlockDriverState *candidate)
{
return bdrv_recurse_is_first_non_filter(bs->file->bs, candidate);
}


static BlockDriver bdrv_compress = {
.format_name = "compress",

Expand All @@ -154,8 +147,6 @@ static BlockDriver bdrv_compress = {

.bdrv_co_block_status = bdrv_co_block_status_from_file,

.bdrv_recurse_is_first_non_filter = compress_recurse_is_first_non_filter,

.has_variable_length = true,
.is_filter = true,
};
Expand Down
18 changes: 0 additions & 18 deletions block/quorum.c
Expand Up @@ -796,23 +796,6 @@ static coroutine_fn int quorum_co_flush(BlockDriverState *bs)
return result;
}

static bool quorum_recurse_is_first_non_filter(BlockDriverState *bs,
BlockDriverState *candidate)
{
BDRVQuorumState *s = bs->opaque;
int i;

for (i = 0; i < s->num_children; i++) {
bool perm = bdrv_recurse_is_first_non_filter(s->children[i]->bs,
candidate);
if (perm) {
return true;
}
}

return false;
}

static bool quorum_recurse_can_replace(BlockDriverState *bs,
BlockDriverState *to_replace)
{
Expand Down Expand Up @@ -1216,7 +1199,6 @@ static BlockDriver bdrv_quorum = {
.bdrv_child_perm = quorum_child_perm,

.is_filter = true,
.bdrv_recurse_is_first_non_filter = quorum_recurse_is_first_non_filter,
.bdrv_recurse_can_replace = quorum_recurse_can_replace,

.strong_runtime_opts = quorum_strong_runtime_opts,
Expand Down
7 changes: 0 additions & 7 deletions block/replication.c
Expand Up @@ -306,12 +306,6 @@ static coroutine_fn int replication_co_writev(BlockDriverState *bs,
return ret;
}

static bool replication_recurse_is_first_non_filter(BlockDriverState *bs,
BlockDriverState *candidate)
{
return bdrv_recurse_is_first_non_filter(bs->file->bs, candidate);
}

static void secondary_do_checkpoint(BDRVReplicationState *s, Error **errp)
{
Error *local_err = NULL;
Expand Down Expand Up @@ -699,7 +693,6 @@ static BlockDriver bdrv_replication = {
.bdrv_co_writev = replication_co_writev,

.is_filter = true,
.bdrv_recurse_is_first_non_filter = replication_recurse_is_first_non_filter,

.has_variable_length = true,
.strong_runtime_opts = replication_strong_runtime_opts,
Expand Down
8 changes: 0 additions & 8 deletions block/throttle.c
Expand Up @@ -207,12 +207,6 @@ static void throttle_reopen_abort(BDRVReopenState *reopen_state)
reopen_state->opaque = NULL;
}

static bool throttle_recurse_is_first_non_filter(BlockDriverState *bs,
BlockDriverState *candidate)
{
return bdrv_recurse_is_first_non_filter(bs->file->bs, candidate);
}

static void coroutine_fn throttle_co_drain_begin(BlockDriverState *bs)
{
ThrottleGroupMember *tgm = bs->opaque;
Expand Down Expand Up @@ -252,8 +246,6 @@ static BlockDriver bdrv_throttle = {
.bdrv_co_pwrite_zeroes = throttle_co_pwrite_zeroes,
.bdrv_co_pdiscard = throttle_co_pdiscard,

.bdrv_recurse_is_first_non_filter = throttle_recurse_is_first_non_filter,

.bdrv_attach_aio_context = throttle_attach_aio_context,
.bdrv_detach_aio_context = throttle_detach_aio_context,

Expand Down
4 changes: 0 additions & 4 deletions include/block/block.h
Expand Up @@ -391,10 +391,6 @@ int bdrv_amend_options(BlockDriverState *bs_new, QemuOpts *opts,
BlockDriverAmendStatusCB *status_cb, void *cb_opaque,
Error **errp);

/* external snapshots */
bool bdrv_recurse_is_first_non_filter(BlockDriverState *bs,
BlockDriverState *candidate);

/* check if a named node can be replaced when doing drive-mirror */
BlockDriverState *check_to_replace_node(BlockDriverState *parent_bs,
const char *node_name, Error **errp);
Expand Down
8 changes: 0 additions & 8 deletions include/block/block_int.h
Expand Up @@ -94,14 +94,6 @@ struct BlockDriver {
* must implement them and return -ENOTSUP.
*/
bool is_filter;
/* for snapshots block filter like Quorum can implement the
* following recursive callback.
* It's purpose is to recurse on the filter children while calling
* bdrv_recurse_is_first_non_filter on them.
* For a sample implementation look in the future Quorum block filter.
*/
bool (*bdrv_recurse_is_first_non_filter)(BlockDriverState *bs,
BlockDriverState *candidate);
/*
* Return true if @to_replace can be replaced by a BDS with the
* same data as @bs without it affecting @bs's behavior (that is,
Expand Down

0 comments on commit 6b4907c

Please sign in to comment.