summaryrefslogtreecommitdiffstats
path: root/lib/activate/activate-lv.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/activate/activate-lv.c')
-rw-r--r--lib/activate/activate-lv.c101
1 files changed, 0 insertions, 101 deletions
diff --git a/lib/activate/activate-lv.c b/lib/activate/activate-lv.c
deleted file mode 100644
index dc4d7d9d..00000000
--- a/lib/activate/activate-lv.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2002 Sistina Software (UK) Limited.
- *
- * This file is released under the LGPL.
- */
-
-#include "ll-activate.h"
-#include "lvm-string.h"
-#include "log.h"
-
-#include <libdevmapper.h>
-
-/*
- * Emit a target for a given segment.
- * FIXME: tidy this function.
- */
-static int _emit_target(struct dm_task *dmt, struct stripe_segment *seg)
-{
- char params[1024];
- uint64_t esize = seg->lv->vg->extent_size;
- uint32_t s, stripes = seg->stripes;
- int w = 0, tw = 0, error = 0;
- const char *no_space =
- "Insufficient space to write target parameters.";
- char *filler = "/dev/ioerror";
- char *target;
-
- if (stripes == 1) {
- if (!seg->area[0].pv) {
- target = "error";
- error = 1;
- }
- else
- target = "linear";
- }
-
- if (stripes > 1) {
- target = "striped";
- tw = lvm_snprintf(params, sizeof(params), "%u %u ",
- stripes, seg->stripe_size);
-
- if (tw < 0) {
- log_err(no_space);
- return 0;
- }
-
- w = tw;
- }
-
- if (!error) {
- for (s = 0; s < stripes; s++, w += tw) {
- if (!seg->area[s].pv)
- tw = lvm_snprintf(
- params + w, sizeof(params) - w,
- "%s 0%s", filler,
- s == (stripes - 1) ? "" : " ");
- else
- tw = lvm_snprintf(
- params + w, sizeof(params) - w,
- "%s %" PRIu64 "%s",
- dev_name(seg->area[s].pv->dev),
- (seg->area[s].pv->pe_start +
- (esize * seg->area[s].pe)),
- s == (stripes - 1) ? "" : " ");
-
- if (tw < 0) {
- log_err(no_space);
- return 0;
- }
- }
- }
-
- log_very_verbose("Adding target: %" PRIu64 " %" PRIu64 " %s %s",
- esize * seg->le, esize * seg->len,
- target, params);
-
- if (!dm_task_add_target(dmt, esize * seg->le, esize * seg->len,
- target, params)) {
- stack;
- return 0;
- }
-
- return 1;
-}
-
-int device_populate_lv(struct dm_task *dmt, struct logical_volume *lv)
-{
- struct list *segh;
- struct stripe_segment *seg;
-
- log_very_verbose("Generating devmapper table for %s", lv->name);
- list_iterate(segh, &lv->segments) {
- seg = list_item(segh, struct stripe_segment);
- if (!_emit_target(dmt, seg)) {
- log_error("Unable to build table for '%s'", lv->name);
- return 0;
- }
- }
-
- return 1;
-}