Commit 52de9a10 authored by Tomasz Zawadzki's avatar Tomasz Zawadzki
Browse files

bdev/lvol: remove unused vbdev_lvs_grow()



Prior patch removed the last use of this function
that is internal to lvol module.

Signed-off-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: Iec9d2a9c29e627542e337672143c8b389748e493
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/20380


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
parent ad5fc351
Loading
Loading
Loading
Loading
+0 −86
Original line number Diff line number Diff line
@@ -1758,92 +1758,6 @@ vbdev_lvol_get_from_bdev(struct spdk_bdev *bdev)
	return (struct spdk_lvol *)bdev->ctxt;
}

static void
_vbdev_lvs_grow_finish(void *arg, int lvserrno)
{
	struct spdk_lvs_grow_req *req = arg;

	req->cb_fn(req->cb_arg, lvserrno);
	free(req);
}

static void
_vbdev_lvs_grow_unload_cb(void *cb_arg, int lvserrno)
{
	struct spdk_lvs_grow_req *req = cb_arg;
	struct lvol_store_bdev *lvs_bdev;
	struct spdk_bdev *bdev;

	if (lvserrno != 0) {
		_vbdev_lvs_grow_finish(req, lvserrno);
		return;
	}

	lvs_bdev = req->lvs_bdev;
	bdev = lvs_bdev->bdev;
	TAILQ_REMOVE(&g_spdk_lvol_pairs, lvs_bdev, lvol_stores);
	req->base.cb_fn = _vbdev_lvs_grow_finish;
	req->base.cb_arg = req;
	_vbdev_lvs_examine(bdev, &req->base, spdk_lvs_grow);
	free(lvs_bdev);
}

static void
_vbdev_lvs_grow_remove_bdev_unregistered_cb(void *cb_arg, int bdeverrno)
{
	struct spdk_lvs_grow_req *req = cb_arg;
	struct spdk_lvol_store *lvs = req->base.lvol_store;

	if (bdeverrno != 0) {
		SPDK_DEBUGLOG(vbdev_lvol, "Lvol unregistered with errno %d\n", bdeverrno);
	}

	req->lvol_cnt--;

	if (req->lvol_cnt == 0) {
		/* Lvol store can be unloaded once all lvols are closed. */
		if (_vbdev_lvs_are_lvols_closed(lvs)) {
			spdk_lvs_unload(lvs, _vbdev_lvs_grow_unload_cb, req);
		} else {
			_vbdev_lvs_grow_finish(req, -EINVAL);
		}
	}
}

void
vbdev_lvs_grow(struct spdk_lvol_store *lvs,
	       spdk_lvs_op_complete cb_fn, void *cb_arg)
{
	struct spdk_lvs_grow_req *req;
	struct spdk_lvol *lvol, *tmp;

	req = calloc(1, sizeof(*req));
	if (!req) {
		SPDK_ERRLOG("Cannot alloc memory for vbdev lvol store request pointer\n");
		cb_fn(cb_arg, -ENOMEM);
		return;
	}
	req->cb_fn = cb_fn;
	req->cb_arg = cb_arg;
	req->base.lvol_store = lvs;
	req->lvs_bdev = vbdev_get_lvs_bdev_by_lvs(lvs);
	if (req->lvs_bdev == NULL) {
		SPDK_ERRLOG("Cannot get valid lvs_bdev\n");
		_vbdev_lvs_grow_finish(req, -EINVAL);
		return;
	}

	if (_vbdev_lvs_are_lvols_closed(lvs)) {
		spdk_lvs_unload(lvs, _vbdev_lvs_grow_unload_cb, req);
	} else {
		TAILQ_FOREACH_SAFE(lvol, &lvs->lvols, link, tmp) {
			req->lvol_cnt++;
			spdk_bdev_unregister(lvol->bdev, _vbdev_lvs_grow_remove_bdev_unregistered_cb, req);
		}
		assert(req->lvol_cnt > 0);
	}
}

/* Begin degraded blobstore device */

/*
+0 −10
Original line number Diff line number Diff line
@@ -112,16 +112,6 @@ struct lvol_store_bdev *vbdev_get_lvs_bdev_by_lvs(struct spdk_lvol_store *lvs);

struct spdk_lvol *vbdev_lvol_get_from_bdev(struct spdk_bdev *bdev);

/**
 * \brief Grow given lvolstore.
 *
 * \param lvs Pointer to lvolstore
 * \param cb_fn Completion callback
 * \param cb_arg Completion callback custom arguments
 */
void vbdev_lvs_grow(struct spdk_lvol_store *lvs,
		    spdk_lvs_op_complete cb_fn, void *cb_arg);

int vbdev_lvol_esnap_dev_create(void *bs_ctx, void *blob_ctx, struct spdk_blob *blob,
				const void *esnap_id, uint32_t id_len,
				struct spdk_bs_dev **_bs_dev);