mirror of
git://sourceware.org/git/lvm2.git
synced 2025-03-10 16:58:47 +03:00
o builds a very sub-optimal table
This commit is contained in:
parent
aed3f57b3b
commit
758b8b4ba0
35
lib/activate/table-build.c
Normal file
35
lib/activate/table-build.c
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2001 Sistina Software (UK) Limited.
|
||||||
|
*
|
||||||
|
* This file is released under the GPL.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "table-build.c"
|
||||||
|
|
||||||
|
/* FIXME: optimise linear runs */
|
||||||
|
int build_table(struct volume_group *vg, struct logical_volume *lv,
|
||||||
|
const char *file)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
uint64_t sector = 0;
|
||||||
|
uint64_t pe_size = vg->extent_size;
|
||||||
|
uint64_t dest;
|
||||||
|
struct pe_specifier *pes;
|
||||||
|
FILE *fp = fopen(file, "w");
|
||||||
|
|
||||||
|
if (!fp) {
|
||||||
|
log_err("couldn't open '%s' to write table", file);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < lv->le_count; i++) {
|
||||||
|
pes = lv->map + i;
|
||||||
|
dest = pes->pv->pe_start + (pe_size * pes->pe);
|
||||||
|
fprintf(fp, "%ull %ull linear %s %ull\n",
|
||||||
|
sector, pe_size, pes->pv->dev->name, dest);
|
||||||
|
sector += pe_size;
|
||||||
|
}
|
||||||
|
fclose(fp);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
13
lib/activate/table-build.h
Normal file
13
lib/activate/table-build.h
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2001 Sistina Software (UK) Limited.
|
||||||
|
*
|
||||||
|
* This file is released under the GPL.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TABLE_BUILD_H
|
||||||
|
#define TABLE_BUILD_H
|
||||||
|
|
||||||
|
int build_table(struct volume_group *vg, struct logical_volume *lv,
|
||||||
|
const char *file);
|
||||||
|
|
||||||
|
#endif
|
Loading…
x
Reference in New Issue
Block a user