1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-10-27 10:25:13 +03:00

Fix off by 512 sizes for lvm2app.

Internally we store sizes in sectors, but lvm2app exports sizes
in bytes.  We could get fancier and allow units configuration but
this fix should do for now.

Fixes rhbz561422.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
This commit is contained in:
Dave Wysochanski 2010-02-14 03:21:06 +00:00
parent a5ce579672
commit ed3329eb45
4 changed files with 8 additions and 7 deletions

View File

@ -25,6 +25,7 @@
#define MAX_STRIPES 128U
#define SECTOR_SHIFT 9L
#define SECTOR_SIZE ( 1L << SECTOR_SHIFT )
#define STRIPE_SIZE_MIN ( (unsigned) lvm_getpagesize() >> SECTOR_SHIFT) /* PAGESIZE in sectors */
#define STRIPE_SIZE_MAX ( 512L * 1024L >> SECTOR_SHIFT) /* 512 KB in sectors */
#define STRIPE_SIZE_LIMIT ((UINT_MAX >> 2) + 1)

View File

@ -28,7 +28,7 @@
//#define MAX_STRIPES 128U
//#define SECTOR_SHIFT 9L
#define SECTOR_SIZE ( 1L << SECTOR_SHIFT )
//#define SECTOR_SIZE ( 1L << SECTOR_SHIFT )
//#define STRIPE_SIZE_MIN ( (unsigned) lvm_getpagesize() >> SECTOR_SHIFT) /* PAGESIZE in sectors */
//#define STRIPE_SIZE_MAX ( 512L * 1024L >> SECTOR_SHIFT) /* 512 KB in sectors */
//#define STRIPE_SIZE_LIMIT ((UINT_MAX >> 2) + 1)

View File

@ -26,7 +26,7 @@
/* FIXME: have lib/report/report.c _disp function call lv_size()? */
uint64_t lvm_lv_get_size(const lv_t lv)
{
return lv_size(lv);
return SECTOR_SIZE*lv_size(lv);
}
char *lvm_lv_get_uuid(const lv_t lv)
@ -112,7 +112,7 @@ lv_t lvm_vg_create_lv_linear(vg_t vg, const char *name, uint64_t size)
if (!vg_check_write_mode(vg))
return NULL;
memset(&lp, 0, sizeof(lp));
extents = extents_from_size(vg->cmd, size, vg->extent_size);
extents = extents_from_size(vg->cmd, size/SECTOR_SIZE, vg->extent_size);
_lv_set_default_params(&lp, vg, name, extents);
_lv_set_default_linear_params(vg->cmd, &lp);
if (!lv_create_single(vg, &lp))

View File

@ -86,7 +86,7 @@ int lvm_vg_set_extent_size(vg_t vg, uint32_t new_size)
if (!vg_check_write_mode(vg))
return -1;
if (!vg_set_extent_size(vg, new_size))
if (!vg_set_extent_size(vg, new_size/SECTOR_SIZE))
return -1;
return 0;
}
@ -256,17 +256,17 @@ uint64_t lvm_vg_is_partial(const vg_t vg)
/* FIXME: invalid handle? return INTMAX? */
uint64_t lvm_vg_get_size(const vg_t vg)
{
return vg_size(vg);
return SECTOR_SIZE*vg_size(vg);
}
uint64_t lvm_vg_get_free_size(const vg_t vg)
{
return vg_free(vg);
return SECTOR_SIZE*vg_free(vg);
}
uint64_t lvm_vg_get_extent_size(const vg_t vg)
{
return vg_extent_size(vg);
return SECTOR_SIZE*vg_extent_size(vg);
}
uint64_t lvm_vg_get_extent_count(const vg_t vg)