public inbox for lvm2-cvs@sourceware.org
help / color / mirror / Atom feed
* LVM2/lib/format_text format-text.c
@ 2010-11-29 11:16 zkabelac
0 siblings, 0 replies; 15+ messages in thread
From: zkabelac @ 2010-11-29 11:16 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2010-11-29 11:16:58
Modified files:
lib/format_text: format-text.c
Log message:
Remove unused 'i' in _pv_analyze_mda_raw
'i' is unused in the function - remove it.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.148&r2=1.149
--- LVM2/lib/format_text/format-text.c 2010/10/26 09:13:13 1.148
+++ LVM2/lib/format_text/format-text.c 2010/11/29 11:16:58 1.149
@@ -173,7 +173,6 @@
uint64_t area_size;
uint64_t prev_sector, prev_sector2;
uint64_t latest_mrec_offset;
- int i;
uint64_t offset;
uint64_t offset2;
size_t size;
@@ -214,7 +213,7 @@
offset = prev_sector;
size = SECTOR_SIZE;
offset2 = size2 = 0;
- i = 0;
+
while (prev_sector != latest_mrec_offset) {
prev_sector2 = prev_sector;
prev_sector = _get_prev_sector_circular(area_start, area_size,
^ permalink raw reply [flat|nested] 15+ messages in thread
* LVM2/lib/format_text format-text.c
@ 2012-02-27 9:54 zkabelac
0 siblings, 0 replies; 15+ messages in thread
From: zkabelac @ 2012-02-27 9:54 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: zkabelac@sourceware.org 2012-02-27 09:54:25
Modified files:
lib/format_text: format-text.c
Log message:
Remove test for pvid
Since pvid is char buffer[] and not pointer,
there is no point to check it for NULL.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.195&r2=1.196
--- LVM2/lib/format_text/format-text.c 2012/02/23 17:59:33 1.195
+++ LVM2/lib/format_text/format-text.c 2012/02/27 09:54:25 1.196
@@ -1676,7 +1676,6 @@
*/
else {
if (!pv->dev ||
- !pv->dev->pvid ||
!(info = lvmcache_info_from_pvid(pv->dev->pvid, 0))) {
log_error("PV %s missing from cache", pv_dev_name(pv));
return 0;
^ permalink raw reply [flat|nested] 15+ messages in thread
* LVM2/lib/format_text format-text.c
@ 2011-03-02 10:23 prajnoha
0 siblings, 0 replies; 15+ messages in thread
From: prajnoha @ 2011-03-02 10:23 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: prajnoha@sourceware.org 2011-03-02 10:23:29
Modified files:
lib/format_text: format-text.c
Log message:
Use a copy if moving an mda from pv fid to vg fid.
We'll destroy the pv fid (with all mdas in it) after merging all pv mdas to
a vg in _text_pv_setup fn, hence we need to use a copy here!
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.172&r2=1.173
--- LVM2/lib/format_text/format-text.c 2011/03/02 10:19:14 1.172
+++ LVM2/lib/format_text/format-text.c 2011/03/02 10:23:29 1.173
@@ -1647,7 +1647,7 @@
const char *pvid = (const char *) (*pv->old_id.uuid ? &pv->old_id : &pv->id);
struct lvmcache_info *info;
unsigned mda_index;
- struct metadata_area *pv_mda;
+ struct metadata_area *pv_mda, *pv_mda_copy;
struct mda_context *pv_mdac;
uint64_t pe_count;
uint64_t size_reduction = 0;
@@ -1659,8 +1659,10 @@
continue;
/* Be sure it's not already in VG's format instance! */
- if (!fid_get_mda_indexed(vg->fid, pvid, ID_LEN, mda_index))
- fid_add_mda(vg->fid, pv_mda, pvid, ID_LEN, mda_index);
+ if (!fid_get_mda_indexed(vg->fid, pvid, ID_LEN, mda_index)) {
+ pv_mda_copy = mda_copy(vg->fid->fmt->cmd->mem, pv_mda);
+ fid_add_mda(vg->fid, pv_mda_copy, pvid, ID_LEN, mda_index);
+ }
}
}
/*
^ permalink raw reply [flat|nested] 15+ messages in thread
* LVM2/lib/format_text format-text.c
@ 2011-02-28 17:05 prajnoha
0 siblings, 0 replies; 15+ messages in thread
From: prajnoha @ 2011-02-28 17:05 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: prajnoha@sourceware.org 2011-02-28 17:05:48
Modified files:
lib/format_text: format-text.c
Log message:
Use pv->vg_name directly instead of pv->vg->name in _text_pv_write.
This also prevents a possible segfault during an automatic repair
when the PV does not belong to a VG anymore and we call pv_write_orphan.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.170&r2=1.171
--- LVM2/lib/format_text/format-text.c 2011/02/28 13:19:02 1.170
+++ LVM2/lib/format_text/format-text.c 2011/02/28 17:05:48 1.171
@@ -1273,8 +1273,7 @@
/* Add a new cache entry with PV info or update existing one. */
if (!(info = lvmcache_add(fmt->labeller, (const char *) &pv->id,
- pv->dev, pv->vg ? pv->vg->name : FMT_TEXT_ORPHAN_VG_NAME,
- NULL, 0)))
+ pv->dev, pv->vg_name, NULL, 0)))
return_0;
label = info->label;
^ permalink raw reply [flat|nested] 15+ messages in thread
* LVM2/lib/format_text format-text.c
@ 2011-02-25 13:50 prajnoha
0 siblings, 0 replies; 15+ messages in thread
From: prajnoha @ 2011-02-25 13:50 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: prajnoha@sourceware.org 2011-02-25 13:50:03
Modified files:
lib/format_text: format-text.c
Log message:
Fix a bug in metadata location calculation, cleanup pv_add_metadata_area fn.
This bug (a missing line) caused the 2nd MDA area location to be calculated
incorrectly and it didn't fit the disk size properly.
(https://www.redhat.com/archives/lvm-devel/2011-February/msg00127.html)
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.166&r2=1.167
--- LVM2/lib/format_text/format-text.c 2011/02/21 12:31:28 1.166
+++ LVM2/lib/format_text/format-text.c 2011/02/25 13:50:02 1.167
@@ -1884,11 +1884,13 @@
uint64_t alignment, alignment_offset;
uint64_t disk_size;
uint64_t mda_start;
- uint64_t adjustment, limit;
+ uint64_t adjustment, limit, tmp_mda_size;
uint64_t wipe_size = 8 << SECTOR_SHIFT;
size_t page_size = lvm_getpagesize();
struct metadata_area *mda;
struct mda_context *mdac;
+ const char *limit_name;
+ int limit_applied = 0;
if (mda_index >= FMT_TEXT_MAX_MDAS_PER_PV) {
log_error(INTERNAL_ERROR "invalid index of value %u used "
@@ -1917,13 +1919,19 @@
* is locked. If it's not locked, count with any existing MDA1.
* If there's no MDA1, just use disk size as the limit.
*/
- if (pe_start_locked)
+ if (pe_start_locked) {
limit = pe_start;
+ limit_name = "pe_start";
+ }
else if ((mda = fid_get_mda_indexed(fid, pvid, ID_LEN, 1)) &&
- (mdac = mda->metadata_locn))
+ (mdac = mda->metadata_locn)) {
limit = mdac->area.start;
- else
+ limit_name = "MDA1 start";
+ }
+ else {
limit = disk_size;
+ limit_name = "disk size";
+ }
if (limit > disk_size)
goto bad;
@@ -1937,29 +1945,22 @@
}
/* Align MDA0 end position with given alignment if possible. */
- if (alignment) {
- if ((adjustment = (mda_start + mda_size) % alignment)) {
- mda_size += (alignment - adjustment);
- if (mda_start + mda_size > limit)
- mda_size -= (alignment - adjustment);
- }
+ if (alignment &&
+ (adjustment = (mda_start + mda_size) % alignment)) {
+ tmp_mda_size = mda_size + alignment - adjustment;
+ if (mda_start + tmp_mda_size <= limit)
+ mda_size = tmp_mda_size;
}
/* Align MDA0 end position with given alignment offset if possible. */
if (alignment_offset &&
(((mda_start + mda_size) % alignment) == 0)) {
- mda_size += alignment_offset;
- if (mda_start + mda_size > limit)
- mda_size -= alignment_offset;
+ tmp_mda_size = mda_size + alignment_offset;
+ if (mda_start + tmp_mda_size <= limit)
+ mda_size = tmp_mda_size;
}
if (mda_start + mda_size > limit) {
- log_warn("WARNING: metadata area size outreaches "
- "a limit on PV %s specified by its %s. "
- "Trying to adjust metadata area size.",
- pv_dev_name(pv),
- pe_start_locked ? "PE start" : "disk size");
-
/*
* Try to decrease the MDA0 size with twice the
* alignment and then align with given alignment.
@@ -1982,6 +1983,8 @@
/* FIXME: We should probably check for some minimum MDA size here. */
else
mda_size = limit - mda_start;
+
+ limit_applied = 1;
}
/*
@@ -1997,41 +2000,54 @@
else {
/*
* Try to fit MDA1 start within given pe_end or pe_start limit
- * if it's locked. If pe_start and pe_end are not defined yet,
- * count with any existing MDA0 and pe_start. If MDA0 does not
- * exist, just use LABEL_SCAN_SIZE.
+ * if defined or locked. If pe_start is not defined yet, count
+ * with any existing MDA0. If MDA0 does not exist, just use
+ * LABEL_SCAN_SIZE.
*/
pe_end = pv->pe_count ? (pv->pe_start +
pv->pe_count * pv->pe_size - 1) << SECTOR_SHIFT
: 0;
- if (pe_start_locked)
+
+ if (pe_start || pe_start_locked) {
limit = pe_end ? pe_end : pe_start;
- else if (pe_start)
- limit = pe_start;
- /*
- * Normally MDA0's start + size should be pe_start.
- * The statemet here is probably useless since the
- * situation is covered by previous statement.
- */
+ limit_name = pe_end ? "pe_end" : "pe_start";
+ }
else if ((mda = fid_get_mda_indexed(fid, pvid, ID_LEN, 0)) &&
- (mdac = mda->metadata_locn))
+ (mdac = mda->metadata_locn)) {
limit = mdac->area.start + mdac->area.size;
- else
+ limit_name = "MDA0 end";
+ }
+ else {
limit = LABEL_SCAN_SIZE;
+ limit_name = "label scan size";
+ }
- if (limit > disk_size || mda_size > disk_size)
+ if (limit > disk_size)
goto bad;
- mda_start = disk_size - mda_size;
-
- if (alignment) {
- adjustment = mda_start % alignment;
- if (adjustment)
- mda_size += adjustment;
+ if (mda_size > disk_size) {
+ mda_size = disk_size - limit;
+ limit_applied = 1;
}
- if (disk_size - mda_size < limit)
+ mda_start = disk_size - mda_size;
+
+ /* If MDA1 size is too big, just take any usable space. */
+ if (disk_size - mda_size < limit) {
mda_size = disk_size - limit;
+ mda_start = disk_size - mda_size;
+ limit_applied = 1;
+ }
+ /* Otherwise, try to align MDA1 start if possible. */
+ else if (alignment &&
+ (adjustment = mda_start % alignment)) {
+ tmp_mda_size = mda_size + adjustment;
+ if (tmp_mda_size < disk_size &&
+ disk_size - tmp_mda_size >= limit) {
+ mda_size = tmp_mda_size;
+ mda_start = disk_size - mda_size;
+ }
+ }
/*
* If PV's pe_end not set yet, set it to the end of the
@@ -2044,6 +2060,12 @@
}*/
}
+ if (limit_applied)
+ log_very_verbose("Using limited metadata area size on %s "
+ "with value %" PRIu64 " (limited by %s of "
+ "%" PRIu64 ").", pv_dev_name(pv),
+ mda_size, limit_name, limit);
+
if (mda_size) {
/* Wipe metadata area with zeroes. */
if (!dev_set((struct device *) pv->dev, mda_start,
^ permalink raw reply [flat|nested] 15+ messages in thread
* LVM2/lib/format_text format-text.c
@ 2011-02-21 12:25 prajnoha
0 siblings, 0 replies; 15+ messages in thread
From: prajnoha @ 2011-02-21 12:25 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: prajnoha@sourceware.org 2011-02-21 12:25:16
Modified files:
lib/format_text: format-text.c
Log message:
Remove unused _mda_setup fn. This functionality is covered by new pv_add_metadata_area fn.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.162&r2=1.163
--- LVM2/lib/format_text/format-text.c 2011/02/21 12:24:17 1.162
+++ LVM2/lib/format_text/format-text.c 2011/02/21 12:25:16 1.163
@@ -1255,159 +1255,6 @@
return (_scan_file(fmt, vgname) & _scan_raw(fmt, vgname));
}
-/* For orphan, creates new mdas according to policy.
- Always have an mda between end-of-label and pe_align() boundary */
-static int _mda_setup(const struct format_type *fmt,
- uint64_t pe_start, uint64_t pe_end,
- int pvmetadatacopies, uint64_t pvmetadatasize,
- unsigned metadataignore, struct dm_list *mdas,
- struct physical_volume *pv,
- struct volume_group *vg __attribute__((unused)))
-{
- uint64_t mda_adjustment, disk_size, alignment, alignment_offset;
- uint64_t start1, mda_size1; /* First area - start of disk */
- uint64_t start2, mda_size2; /* Second area - end of disk */
- uint64_t wipe_size = 8 << SECTOR_SHIFT;
- size_t pagesize = lvm_getpagesize();
-
- if (!pvmetadatacopies)
- return 1;
-
- alignment = pv->pe_align << SECTOR_SHIFT;
- alignment_offset = pv->pe_align_offset << SECTOR_SHIFT;
- disk_size = pv->size << SECTOR_SHIFT;
- pe_start <<= SECTOR_SHIFT;
- pe_end <<= SECTOR_SHIFT;
-
- if (pe_end > disk_size) {
- log_error("Physical extents end beyond end of device %s!",
- pv_dev_name(pv));
- return 0;
- }
-
- /* Requested metadatasize */
- mda_size1 = pvmetadatasize << SECTOR_SHIFT;
-
- /* Place mda straight after label area at start of disk */
- start1 = LABEL_SCAN_SIZE;
-
- /* Unless the space available is tiny, round to PAGE_SIZE boundary */
- if ((!pe_start && !pe_end) ||
- ((pe_start > start1) && (pe_start - start1 >= MDA_SIZE_MIN))) {
- mda_adjustment = start1 % pagesize;
- if (mda_adjustment)
- start1 += (pagesize - mda_adjustment);
- }
-
- /* Round up to pe_align boundary */
- mda_adjustment = (mda_size1 + start1) % alignment;
- if (mda_adjustment) {
- mda_size1 += (alignment - mda_adjustment);
- /* Revert if it's now too large */
- if (start1 + mda_size1 > disk_size)
- mda_size1 -= (alignment - mda_adjustment);
- }
-
- /* Add pe_align_offset if on pe_align boundary */
- if (alignment_offset &&
- (((start1 + mda_size1) % alignment) == 0)) {
- mda_size1 += alignment_offset;
- /* Revert if it's now too large */
- if (start1 + mda_size1 > disk_size)
- mda_size1 -= alignment_offset;
- }
-
- /* Ensure it's not going to be bigger than the disk! */
- if (start1 + mda_size1 > disk_size) {
- log_warn("WARNING: metadata area fills disk leaving no "
- "space for data on %s.", pv_dev_name(pv));
- /* Leave some free space for rounding */
- /* Avoid empty data area as could cause tools problems */
- mda_size1 = disk_size - start1 - alignment * 2;
- if (start1 + mda_size1 > disk_size) {
- log_error("Insufficient space for first mda on %s",
- pv_dev_name(pv));
- return 0;
- }
- /* Round up to pe_align boundary */
- mda_adjustment = (mda_size1 + start1) % alignment;
- if (mda_adjustment)
- mda_size1 += (alignment - mda_adjustment);
- /* Only have 1 mda in this case */
- pvmetadatacopies = 1;
- }
-
- /* If we already have PEs, avoid overlap */
- if (pe_start || pe_end) {
- if (pe_start <= start1)
- mda_size1 = 0;
- else if (start1 + mda_size1 > pe_start)
- mda_size1 = pe_start - start1;
- }
-
- /* FIXME If creating new mdas, wipe them! */
- if (mda_size1) {
- if (!add_mda(fmt, fmt->cmd->mem, mdas, pv->dev, start1,
- mda_size1, metadataignore))
- return 0;
-
- if (!dev_set((struct device *) pv->dev, start1,
- (size_t) ((mda_size1 > wipe_size) ?
- wipe_size : mda_size1), 0)) {
- log_error("Failed to wipe new metadata area");
- return 0;
- }
-
- if (pvmetadatacopies == 1)
- return 1;
- } else
- start1 = 0;
-
- /* A second copy at end of disk */
- mda_size2 = pvmetadatasize << SECTOR_SHIFT;
-
- /* Ensure it's not going to be bigger than the disk! */
- if (mda_size2 > disk_size)
- mda_size2 = disk_size - start1 - mda_size1;
-
- mda_adjustment = (disk_size - mda_size2) % alignment;
- if (mda_adjustment)
- mda_size2 += mda_adjustment;
-
- start2 = disk_size - mda_size2;
-
- /* If we already have PEs, avoid overlap */
- if (pe_start || pe_end) {
- if (start2 < pe_end) {
- mda_size2 -= (pe_end - start2);
- start2 = pe_end;
- }
- }
-
- /* If we already have a first mda, avoid overlap */
- if (mda_size1) {
- if (start2 < start1 + mda_size1) {
- mda_size2 -= (start1 + mda_size1 - start2);
- start2 = start1 + mda_size1;
- }
- /* No room for any PEs here now! */
- }
-
- if (mda_size2) {
- if (!add_mda(fmt, fmt->cmd->mem, mdas, pv->dev, start2,
- mda_size2, metadataignore)) return 0;
- if (!dev_set(pv->dev, start2,
- (size_t) ((mda_size2 > wipe_size) ?
- wipe_size : mda_size2), 0)) {
- log_error("Failed to wipe new metadata area");
- return 0;
- }
- } else
- return 0;
-
- return 1;
-}
-
/* Only for orphans */
/* Set label_sector to -1 if rewriting existing label into same sector */
/* If mdas is supplied it overwrites existing mdas e.g. used with pvcreate */
^ permalink raw reply [flat|nested] 15+ messages in thread
* LVM2/lib/format_text format-text.c
@ 2010-08-26 12:22 mbroz
0 siblings, 0 replies; 15+ messages in thread
From: mbroz @ 2010-08-26 12:22 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: mbroz@sourceware.org 2010-08-26 12:22:05
Modified files:
lib/format_text: format-text.c
Log message:
Fix previous const removal.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.143&r2=1.144
--- LVM2/lib/format_text/format-text.c 2010/08/20 20:59:07 1.143
+++ LVM2/lib/format_text/format-text.c 2010/08/26 12:22:05 1.144
@@ -1649,7 +1649,7 @@
return dev_name(mdac->area.dev);
}
-static uint64_t const _metadata_locn_offset_raw(void *metadata_locn)
+static uint64_t _metadata_locn_offset_raw(void *metadata_locn)
{
struct mda_context *mdac = (struct mda_context *) metadata_locn;
^ permalink raw reply [flat|nested] 15+ messages in thread
* LVM2/lib/format_text format-text.c
@ 2010-06-29 13:29 wysochanski
0 siblings, 0 replies; 15+ messages in thread
From: wysochanski @ 2010-06-29 13:29 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: wysochanski@sourceware.org 2010-06-29 13:29:53
Modified files:
lib/format_text: format-text.c
Log message:
Attempt to fix intermittent failure with non-debug configured vgcfgbackup.
There's an intermittent failure with vgcfgbackup that seems to have been
introduced with the metadataignore / vgmetadatacopies patchset.
Intermittent failures are often the result of uninitialized data,
so this patch calls zalloc in a few places it might matter.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.133&r2=1.134
--- LVM2/lib/format_text/format-text.c 2010/06/28 20:35:17 1.133
+++ LVM2/lib/format_text/format-text.c 2010/06/29 13:29:53 1.134
@@ -1919,7 +1919,7 @@
dm_list_init(&fid->metadata_areas_ignored);
if (!vgname) {
- if (!(mda = dm_pool_alloc(fmt->cmd->mem, sizeof(*mda))))
+ if (!(mda = dm_pool_zalloc(fmt->cmd->mem, sizeof(*mda))))
return_NULL;
mda->ops = &_metadata_text_file_backup_ops;
mda->metadata_locn = context;
@@ -1936,7 +1936,7 @@
}
context = create_text_context(fmt->cmd, path, NULL);
- if (!(mda = dm_pool_alloc(fmt->cmd->mem, sizeof(*mda))))
+ if (!(mda = dm_pool_zalloc(fmt->cmd->mem, sizeof(*mda))))
return_NULL;
mda->ops = &_metadata_text_file_ops;
mda->metadata_locn = context;
@@ -1950,10 +1950,10 @@
if (!_raw_holds_vgname(fid, &rl->dev_area, vgname))
continue;
- if (!(mda = dm_pool_alloc(fmt->cmd->mem, sizeof(*mda))))
+ if (!(mda = dm_pool_zalloc(fmt->cmd->mem, sizeof(*mda))))
return_NULL;
- if (!(mdac = dm_pool_alloc(fmt->cmd->mem, sizeof(*mdac))))
+ if (!(mdac = dm_pool_zalloc(fmt->cmd->mem, sizeof(*mdac))))
return_NULL;
mda->metadata_locn = mdac;
/* FIXME Allow multiple dev_areas inside area */
^ permalink raw reply [flat|nested] 15+ messages in thread
* LVM2/lib/format_text format-text.c
@ 2010-06-28 20:30 wysochanski
0 siblings, 0 replies; 15+ messages in thread
From: wysochanski @ 2010-06-28 20:30 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: wysochanski@sourceware.org 2010-06-28 20:30:31
Modified files:
lib/format_text: format-text.c
Log message:
Move dev_open / dev_close outside _vg_read_raw_area().
This refactoring moves the device open/close up one level to the caller of
_vg_read_raw_area(). Should be no functional change and facilitate future
changes related to metadata balancing.
Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.124&r2=1.125
--- LVM2/lib/format_text/format-text.c 2010/06/28 20:29:57 1.124
+++ LVM2/lib/format_text/format-text.c 2010/06/28 20:30:30 1.125
@@ -483,9 +483,6 @@
char *desc;
uint32_t wrap = 0;
- if (!dev_open(area->dev))
- return_NULL;
-
if (!(mdah = _raw_read_mda_header(fid->fmt, area)))
goto_out;
@@ -520,9 +517,6 @@
vg->status |= PRECOMMITTED;
out:
- if (!dev_close(area->dev))
- stack;
-
return vg;
}
@@ -531,8 +525,17 @@
struct metadata_area *mda)
{
struct mda_context *mdac = (struct mda_context *) mda->metadata_locn;
+ struct volume_group *vg;
+
+ if (!dev_open(mdac->area.dev))
+ return_NULL;
+
+ vg = _vg_read_raw_area(fid, vgname, &mdac->area, 0);
- return _vg_read_raw_area(fid, vgname, &mdac->area, 0);
+ if (!dev_close(mdac->area.dev))
+ stack;
+
+ return vg;
}
static struct volume_group *_vg_read_precommit_raw(struct format_instance *fid,
@@ -540,8 +543,17 @@
struct metadata_area *mda)
{
struct mda_context *mdac = (struct mda_context *) mda->metadata_locn;
+ struct volume_group *vg;
- return _vg_read_raw_area(fid, vgname, &mdac->area, 1);
+ if (!dev_open(mdac->area.dev))
+ return_NULL;
+
+ vg = _vg_read_raw_area(fid, vgname, &mdac->area, 1);
+
+ if (!dev_close(mdac->area.dev))
+ stack;
+
+ return vg;
}
static int _vg_write_raw(struct format_instance *fid, struct volume_group *vg,
@@ -1192,9 +1204,17 @@
/* FIXME We're reading mdah twice here... */
if ((vgname = vgname_from_mda(fmt, &rl->dev_area, &vgid, &vgstatus,
NULL, NULL))) {
- if ((vg = _vg_read_raw_area(&fid, vgname,
- &rl->dev_area, 0)))
+ if (!dev_open(rl->dev_area.dev)) {
+ stack;
+ continue;
+ }
+
+ vg = _vg_read_raw_area(&fid, vgname, &rl->dev_area, 0);
+ if (vg)
lvmcache_update_vg(vg, 0);
+
+ if (!dev_close(rl->dev_area.dev))
+ stack;
}
}
^ permalink raw reply [flat|nested] 15+ messages in thread
* LVM2/lib/format_text format-text.c
@ 2009-07-31 14:23 snitzer
0 siblings, 0 replies; 15+ messages in thread
From: snitzer @ 2009-07-31 14:23 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: snitzer@sourceware.org 2009-07-31 14:23:07
Modified files:
lib/format_text: format-text.c
Log message:
Fix compile warnings from recently added log_very_verbose() in _text_pv_write()
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.113&r2=1.114
--- LVM2/lib/format_text/format-text.c 2009/07/30 21:15:17 1.113
+++ LVM2/lib/format_text/format-text.c 2009/07/31 14:23:06 1.114
@@ -1427,8 +1427,8 @@
if (adjustment)
pv->pe_start += pv->pe_align - adjustment;
- log_very_verbose("%s: setting pe_start=%lu "
- "(orig_pe_start=%lu, "
+ log_very_verbose("%s: setting pe_start=%" PRIu64
+ " (orig_pe_start=%" PRIu64 ", "
"pe_align=%lu, pe_align_offset=%lu, "
"adjustment=%" PRIu64 ")",
pv_dev_name(pv), pv->pe_start,
^ permalink raw reply [flat|nested] 15+ messages in thread
* LVM2/lib/format_text format-text.c
@ 2009-07-30 17:41 snitzer
0 siblings, 0 replies; 15+ messages in thread
From: snitzer @ 2009-07-30 17:41 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: snitzer@sourceware.org 2009-07-30 17:41:02
Modified files:
lib/format_text: format-text.c
Log message:
Remove legacy support for preserving pe_start if a PV already has data
areas.
This preserved pe_start would quickly be readjusted to follow the first
mda anyway. An example use-case that hit this code path is: running
pvcreate on an already existing PV _without_ a preceeding pvremove.
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.108&r2=1.109
--- LVM2/lib/format_text/format-text.c 2009/07/30 17:19:31 1.108
+++ LVM2/lib/format_text/format-text.c 2009/07/30 17:41:01 1.109
@@ -1327,7 +1327,6 @@
char buf[MDA_HEADER_SIZE] __attribute((aligned(8)));
struct mda_header *mdah = (struct mda_header *) buf;
uint64_t adjustment;
- struct data_area_list *da;
/* FIXME Test mode don't update cache? */
@@ -1364,16 +1363,9 @@
dm_list_init(&info->mdas);
}
- /*
- * If no pe_start supplied but PV already exists,
- * preserve existing value.
- */
- if (info->das.n) {
- if (!pv->pe_start)
- dm_list_iterate_items(da, &info->das)
- pv->pe_start = da->disk_locn.offset >> SECTOR_SHIFT;
+ if (info->das.n)
del_das(&info->das);
- } else
+ else
dm_list_init(&info->das);
/*
^ permalink raw reply [flat|nested] 15+ messages in thread
* LVM2/lib/format_text format-text.c
@ 2006-04-21 15:37 agk
0 siblings, 0 replies; 15+ messages in thread
From: agk @ 2006-04-21 15:37 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2006-04-21 15:37:08
Modified files:
lib/format_text: format-text.c
Log message:
terminate vgid in debug mesg
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.56&r2=1.57
^ permalink raw reply [flat|nested] 15+ messages in thread
* LVM2/lib/format_text format-text.c
@ 2005-10-31 2:37 agk
0 siblings, 0 replies; 15+ messages in thread
From: agk @ 2005-10-31 2:37 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2005-10-31 02:37:29
Modified files:
lib/format_text: format-text.c
Log message:
A pvresize implementation (Zak Kipling).
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.46&r2=1.47
^ permalink raw reply [flat|nested] 15+ messages in thread
* LVM2/lib/format_text format-text.c
@ 2005-04-06 16:35 agk
0 siblings, 0 replies; 15+ messages in thread
From: agk @ 2005-04-06 16:35 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2005-04-06 16:35:34
Modified files:
lib/format_text: format-text.c
Log message:
_vg_posn -> _find_vg_rlocn
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.38&r2=1.39
^ permalink raw reply [flat|nested] 15+ messages in thread
* LVM2/lib/format_text format-text.c
@ 2004-05-05 18:17 agk
0 siblings, 0 replies; 15+ messages in thread
From: agk @ 2004-05-05 18:17 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2004-05-05 18:17:48
Modified files:
lib/format_text: format-text.c
Log message:
lvm2 format sets unlimited_vols format flag.
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.32&r2=1.33
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2012-02-27 9:54 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-29 11:16 LVM2/lib/format_text format-text.c zkabelac
-- strict thread matches above, loose matches on Subject: below --
2012-02-27 9:54 zkabelac
2011-03-02 10:23 prajnoha
2011-02-28 17:05 prajnoha
2011-02-25 13:50 prajnoha
2011-02-21 12:25 prajnoha
2010-08-26 12:22 mbroz
2010-06-29 13:29 wysochanski
2010-06-28 20:30 wysochanski
2009-07-31 14:23 snitzer
2009-07-30 17:41 snitzer
2006-04-21 15:37 agk
2005-10-31 2:37 agk
2005-04-06 16:35 agk
2004-05-05 18:17 agk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).