Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
List overview
Download
lvm2-commits
September 2021
----- 2024 -----
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
lvm2-commits@lists.fedorahosted.org
2 participants
121 discussions
Start a n
N
ew thread
main - handle bad metadata text in vg_read path
by David Teigland
28 Sep '21
28 Sep '21
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=939b4bc58719605aa7d34…
Commit: 939b4bc58719605aa7d348d2b4e0fcf41aad0b17 Parent: e3b4c365a4d9fc3f88dcfaca6dff89b924fc4851 Author: David Teigland <teigland(a)redhat.com> AuthorDate: Tue Sep 28 14:58:03 2021 -0500 Committer: David Teigland <teigland(a)redhat.com> CommitterDate: Tue Sep 28 15:17:43 2021 -0500 handle bad metadata text in vg_read path Corrupt metadata text (with good mda header) was being handled in the label_scan phase, but not in the vg_read phase. This was sufficient because metadata areas would always be read and checksummed during label_scan (metadata parsing was skipped previously as an optimization.) This changed with the optimization in commit 61a6f9905e87e650f0bddae83fec6923bb100a57 "metadata: optimize reading metadata copies in scan" Now, some metadata areas will not be read and checksummed at all during the label_scan phase, only during the vg_read phase. This means that bad metadata text may first be detected in the vg_read phase. So, add equivalent bad metadata handling to the vg_read path to match the label_scan path. --- lib/cache/lvmcache.c | 14 ++++++++++++++ lib/cache/lvmcache.h | 2 ++ lib/format_text/format-text.c | 18 ++++++++++++++++++ lib/format_text/import.c | 5 ++--- lib/metadata/metadata.c | 2 +- test/shell/metadata-bad-text.sh | 23 ++++++++++++----------- 6 files changed, 49 insertions(+), 15 deletions(-) diff --git a/lib/cache/lvmcache.c b/lib/cache/lvmcache.c index 655f34bd8..7a7634074 100644 --- a/lib/cache/lvmcache.c +++ b/lib/cache/lvmcache.c @@ -237,6 +237,20 @@ void lvmcache_save_bad_mda(struct lvmcache_info *info, struct metadata_area *mda dm_list_add(&info->bad_mdas, &mda->list); } +void lvmcache_del_save_bad_mda(struct lvmcache_info *info, int mda_num, int bad_mda_flag) +{ + struct metadata_area *mda, *mda_safe; + + dm_list_iterate_items_safe(mda, mda_safe, &info->mdas) { + if (mda->mda_num == mda_num) { + dm_list_del(&mda->list); + mda->bad_fields |= bad_mda_flag; + lvmcache_save_bad_mda(info, mda); + break; + } + } +} + void lvmcache_get_bad_mdas(struct cmd_context *cmd, const char *vgname, const char *vgid, struct dm_list *bad_mda_list) diff --git a/lib/cache/lvmcache.h b/lib/cache/lvmcache.h index d7e10f4f0..9511bb9e9 100644 --- a/lib/cache/lvmcache.h +++ b/lib/cache/lvmcache.h @@ -210,6 +210,8 @@ void lvmcache_del_outdated_devs(struct cmd_context *cmd, void lvmcache_save_bad_mda(struct lvmcache_info *info, struct metadata_area *mda); +void lvmcache_del_save_bad_mda(struct lvmcache_info *info, int mda_num, int bad_mda_flag); + void lvmcache_get_bad_mdas(struct cmd_context *cmd, const char *vgname, const char *vgid, struct dm_list *bad_mda_list); diff --git a/lib/format_text/format-text.c b/lib/format_text/format-text.c index c880f0eb6..6a4cc98d8 100644 --- a/lib/format_text/format-text.c +++ b/lib/format_text/format-text.c @@ -465,6 +465,24 @@ static struct volume_group *_vg_read_raw(struct cmd_context *cmd, vg = _vg_read_raw_area(cmd, fid, vgname, &mdac->area, vg_fmtdata, use_previous_vg, 0, mda_is_primary(mda)); + if (!vg && !*use_previous_vg) { + /* + * This condition (corrupt metadata text) is often seen in the + * label_scan()/_text_read() phase, where this code corresponds to + * the lvmcache_save_bad_mda() in _text_read(). In this case we + * have two mda structs to deal with, one in lvmcache from label scan, + * and the mda copy on fid->metadata_areas_in_use. + */ + struct device *dev = mdac->area.dev; + struct lvmcache_info *info = lvmcache_info_from_pvid(dev->pvid, dev, 0); + log_warn("WARNING: reading %s mda%d failed to read metadata.", dev_name(dev), mda_is_primary(mda)?1:2); + log_warn("WARNING: repair VG metadata on %s with vgck --updatemetadata.", dev_name(dev)); + /* remove mda from lvmcache, saving it in info->bad_mdas for possible repair with updatemetadata */ + lvmcache_del_save_bad_mda(info, mda->mda_num, BAD_MDA_TEXT); + /* remove mda from fid */ + fid_remove_mda(fid, mda, NULL, 0, 0); + } + return vg; } diff --git a/lib/format_text/import.c b/lib/format_text/import.c index e4e526354..a3735369d 100644 --- a/lib/format_text/import.c +++ b/lib/format_text/import.c @@ -157,13 +157,12 @@ struct volume_group *text_read_metadata(struct format_instance *fid, if (!config_file_read_fd(cft, dev, MDA_CONTENT_REASON(primary_mda), offset, size, offset2, size2, checksum_fn, checksum, skip_parse, 1)) { - /* FIXME: handle errors */ - log_error("Couldn't read volume group metadata from %s.", dev_name(dev)); + log_warn("WARNING: couldn't read volume group metadata from %s.", dev_name(dev)); goto out; } } else { if (!config_file_read(cft)) { - log_error("Couldn't read volume group metadata from file."); + log_warn("WARNING: couldn't read volume group metadata from file."); goto out; } } diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c index b37b91487..9a7d23365 100644 --- a/lib/metadata/metadata.c +++ b/lib/metadata/metadata.c @@ -4798,7 +4798,7 @@ static struct volume_group *_vg_read(struct cmd_context *cmd, * fid->metadata_areas_in_use by create_instance above, and here we * read VG metadata from each of those mdas. */ - dm_list_iterate_items(mda, &fid->metadata_areas_in_use) { + dm_list_iterate_items_safe(mda, mda2, &fid->metadata_areas_in_use) { mda_dev = mda_get_device(mda); /* I don't think this can happen */ diff --git a/test/shell/metadata-bad-text.sh b/test/shell/metadata-bad-text.sh index 9ccfe5f76..038a88485 100644 --- a/test/shell/metadata-bad-text.sh +++ b/test/shell/metadata-bad-text.sh @@ -44,7 +44,7 @@ sed 's/flags =/flagx =/' meta1 > meta1.bad dd if=meta1.bad of="$dev1" pvs 2>&1 | tee out -grep "bad metadata text" out +grep "Checksum error" out pvs "$dev1" pvs "$dev2" @@ -58,7 +58,7 @@ lvcreate -l1 $vg vgck --updatemetadata $vg pvs 2>&1 | tee out -not grep "bad metadata text" out +not grep "Checksum error" out pvs "$dev1" pvs "$dev2" @@ -92,7 +92,8 @@ dd if=meta1.bad of="$dev1" dd if=meta2.bad of="$dev2" pvs 2>&1 | tee out -grep "bad metadata text" out > out2 +# FIXME: find a better test than looking for a specific message +grep "Checksum error" out > out2 grep "$dev1" out2 grep "$dev2" out2 @@ -108,7 +109,7 @@ lvcreate -l1 $vg vgck --updatemetadata $vg pvs 2>&1 | tee out -not grep "bad metadata text" out +not grep "Checksum error" out pvs "$dev1" pvs "$dev2" @@ -149,7 +150,7 @@ dd if=meta2.bad of="$dev2" dd if=meta3.bad of="$dev3" pvs 2>&1 | tee out -grep "bad metadata text" out > out2 +grep "Checksum error" out > out2 grep "$dev1" out2 grep "$dev2" out2 grep "$dev3" out2 @@ -166,7 +167,7 @@ lvcreate -l1 $vg vgck --updatemetadata $vg pvs 2>&1 | tee out -not grep "bad metadata text" out +not grep "Checksum error" out pvs "$dev1" pvs "$dev2" @@ -197,7 +198,7 @@ sed 's/READ/RRRR/' meta1 > meta1.bad dd if=meta1.bad of="$dev1" pvs 2>&1 | tee out -grep "bad metadata text" out > out2 +grep "Checksum error" out > out2 grep "$dev1" out2 # We can still use the VG with other available @@ -224,7 +225,7 @@ aux enable_dev "$dev2" # Both old and bad metadata are reported. pvs 2>&1 | tee out grep "ignoring metadata seqno" out -grep "bad metadata text" out +grep "Checksum error" out pvs "$dev1" pvs "$dev2" pvs "$dev3" @@ -238,7 +239,7 @@ vgck --updatemetadata $vg pvs 2>&1 | tee out not grep "ignoring metadata seqno" out -not grep "bad metadata text" out +not grep "Checksum error" out pvs "$dev1" pvs "$dev2" pvs "$dev3" @@ -282,7 +283,7 @@ dd if=meta1.bad of="$dev1" dd if=meta2.bad of="$dev2" pvs 2>&1 | tee out -grep "bad metadata text" out > out2 +grep "Checksum error" out > out2 grep "$dev1" out2 grep "$dev2" out2 @@ -319,7 +320,7 @@ not ls "$RUNDIR/lvm/vgs_online/$vg" vgck --updatemetadata $vg pvs 2>&1 | tee out -not grep "bad metadata text" out +not grep "Checksum error" out pvs "$dev1" pvs "$dev2"
1
0
0
0
main - debug: shorter code
by Zdenek Kabelac
27 Sep '21
27 Sep '21
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=e3b4c365a4d9fc3f88dcf…
Commit: e3b4c365a4d9fc3f88dcfaca6dff89b924fc4851 Parent: f74d30d411af0849e4c7f5ac6027899a32b48f52 Author: Zdenek Kabelac <zkabelac(a)redhat.com> AuthorDate: Mon Sep 27 11:52:16 2021 +0200 Committer: Zdenek Kabelac <zkabelac(a)redhat.com> CommitterDate: Mon Sep 27 18:56:14 2021 +0200 debug: shorter code --- lib/format_text/format-text.c | 71 ++++++++++--------------------------------- 1 file changed, 16 insertions(+), 55 deletions(-) diff --git a/lib/format_text/format-text.c b/lib/format_text/format-text.c index e8b1865f8..c880f0eb6 100644 --- a/lib/format_text/format-text.c +++ b/lib/format_text/format-text.c @@ -1082,61 +1082,22 @@ static int _vg_commit_raw_rlocn(struct format_instance *fid, rlocn_set_ignored(rlocn_slot0, mda_is_ignored(mda)); - if (mdac->rlocn.size) { - if (precommit) { - log_debug_metadata("VG %s metadata precommit seq %u on %s mda header at %llu %s", - vg->name, vg->seqno, dev_name(mdac->area.dev), - (unsigned long long)mdac->area.start, - mda_is_ignored(mda) ? "(ignored)" : "(used)"); - - log_debug_metadata("VG %s metadata precommit slot0 offset %llu size %llu slot1 offset %llu size %llu", - vg->name, - (unsigned long long)mdab->raw_locns[0].offset, - (unsigned long long)mdab->raw_locns[0].size, - (unsigned long long)mdab->raw_locns[1].offset, - (unsigned long long)mdab->raw_locns[1].size); - - } else { - log_debug_metadata("VG %s metadata commit seq %u on %s mda header at %llu %s", - vg->name, vg->seqno, dev_name(mdac->area.dev), - (unsigned long long)mdac->area.start, - mda_is_ignored(mda) ? "(ignored)" : "(used)"); - - log_debug_metadata("VG %s metadata commit slot0 offset %llu size %llu slot1 offset %llu size %llu", - vg->name, - (unsigned long long)mdab->raw_locns[0].offset, - (unsigned long long)mdab->raw_locns[0].size, - (unsigned long long)mdab->raw_locns[1].offset, - (unsigned long long)mdab->raw_locns[1].size); - } - } else { - if (precommit) { - log_debug_metadata("VG %s metadata precommit empty seq %u on %s mda header at %llu %s", - vg->name, vg->seqno, dev_name(mdac->area.dev), - (unsigned long long)mdac->area.start, - mda_is_ignored(mda) ? "(ignored)" : "(used)"); - - log_debug_metadata("VG %s metadata precommit empty slot0 offset %llu size %llu slot1 offset %llu size %llu", - vg->name, - (unsigned long long)mdab->raw_locns[0].offset, - (unsigned long long)mdab->raw_locns[0].size, - (unsigned long long)mdab->raw_locns[1].offset, - (unsigned long long)mdab->raw_locns[1].size); - - } else { - log_debug_metadata("VG %s metadata commit empty seq %u on %s mda header at %llu %s", - vg->name, vg->seqno, dev_name(mdac->area.dev), - (unsigned long long)mdac->area.start, - mda_is_ignored(mda) ? "(ignored)" : "(used)"); - - log_debug_metadata("VG %s metadata commit empty slot0 offset %llu size %llu slot1 offset %llu size %llu", - vg->name, - (unsigned long long)mdab->raw_locns[0].offset, - (unsigned long long)mdab->raw_locns[0].size, - (unsigned long long)mdab->raw_locns[1].offset, - (unsigned long long)mdab->raw_locns[1].size); - } - } + log_debug_metadata("VG %s metadata %scommit %sseq %u on %s mda header at %llu %s.", + vg->name, + (precommit) ? "pre" : "", + (!mdac->rlocn.size) ? "empty ": "", + vg->seqno, dev_name(mdac->area.dev), + (unsigned long long)mdac->area.start, + mda_is_ignored(mda) ? "(ignored)" : "(used)"); + + log_debug_metadata("VG %s metadata %scommit %sslot0 offset %llu size %llu slot1 offset %llu size %llu.", + vg->name, + (precommit) ? "pre" : "", + (!mdac->rlocn.size) ? "empty ": "", + (unsigned long long)mdab->raw_locns[0].offset, + (unsigned long long)mdab->raw_locns[0].size, + (unsigned long long)mdab->raw_locns[1].offset, + (unsigned long long)mdab->raw_locns[1].size); rlocn_set_ignored(mdab->raw_locns, mda_is_ignored(mda));
1
0
0
0
main - cleanup: use already known lv size
by Zdenek Kabelac
27 Sep '21
27 Sep '21
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=f74d30d411af0849e4c7f…
Commit: f74d30d411af0849e4c7f5ac6027899a32b48f52 Parent: a8a958cc04da2c23e2a7a168ae19f05d4fcab1ae Author: Zdenek Kabelac <zkabelac(a)redhat.com> AuthorDate: Mon Sep 27 11:00:53 2021 +0200 Committer: Zdenek Kabelac <zkabelac(a)redhat.com> CommitterDate: Mon Sep 27 18:56:14 2021 +0200 cleanup: use already known lv size --- lib/metadata/lv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/metadata/lv.c b/lib/metadata/lv.c index 475f21191..21aa3b422 100644 --- a/lib/metadata/lv.c +++ b/lib/metadata/lv.c @@ -951,7 +951,7 @@ uint64_t lv_origin_size(const struct logical_volume *lv) struct lv_segment *seg; if (lv_is_cow(lv)) - return (uint64_t) find_snapshot(lv)->len * lv->vg->extent_size; + return find_snapshot(lv)->lv->size; if (lv_is_thin_volume(lv) && (seg = first_seg(lv)) && seg->external_lv)
1
0
0
0
main - cleanup: reuse existing code for free path
by Zdenek Kabelac
27 Sep '21
27 Sep '21
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=a8a958cc04da2c23e2a7a…
Commit: a8a958cc04da2c23e2a7a168ae19f05d4fcab1ae Parent: 9668427fe8d08f2c0e3f778c53bc00181478f71c Author: Zdenek Kabelac <zkabelac(a)redhat.com> AuthorDate: Mon Sep 27 11:42:45 2021 +0200 Committer: Zdenek Kabelac <zkabelac(a)redhat.com> CommitterDate: Mon Sep 27 18:56:14 2021 +0200 cleanup: reuse existing code for free path --- lib/format_text/format-text.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/lib/format_text/format-text.c b/lib/format_text/format-text.c index b2bbf3c66..e8b1865f8 100644 --- a/lib/format_text/format-text.c +++ b/lib/format_text/format-text.c @@ -964,12 +964,8 @@ static int _vg_write_raw(struct format_instance *fid, struct volume_group *vg, r = 1; out: - if (!r) { - free(fidtc->write_buf); - fidtc->write_buf = NULL; - fidtc->write_buf_size = 0; - fidtc->new_metadata_size = 0; - } + if (!r) + free_text_fidtc(vg); return r; } @@ -1154,12 +1150,8 @@ static int _vg_commit_raw_rlocn(struct format_instance *fid, r = 1; out: - if (!precommit && !fidtc->preserve) { - free(fidtc->write_buf); - fidtc->write_buf = NULL; - fidtc->write_buf_size = 0; - fidtc->new_metadata_size = 0; - } + if (!precommit && !fidtc->preserve) + free_text_fidtc(vg); return r; }
1
0
0
0
main - cleanup: use first parameter uint
by Zdenek Kabelac
27 Sep '21
27 Sep '21
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=9668427fe8d08f2c0e3f7…
Commit: 9668427fe8d08f2c0e3f778c53bc00181478f71c Parent: 614d150a8c7387744804b90fddea99c7fb4511f2 Author: Zdenek Kabelac <zkabelac(a)redhat.com> AuthorDate: Fri Sep 24 22:16:07 2021 +0200 Committer: Zdenek Kabelac <zkabelac(a)redhat.com> CommitterDate: Mon Sep 27 18:56:14 2021 +0200 cleanup: use first parameter uint Easier with struct zeroing and matching assing of type uint. --- tools/lvcreate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/lvcreate.c b/tools/lvcreate.c index 0def23639..0121c09a8 100644 --- a/tools/lvcreate.c +++ b/tools/lvcreate.c @@ -18,9 +18,9 @@ #include <fcntl.h> struct lvcreate_cmdline_params { - percent_type_t percent; uint64_t size; uint64_t virtual_size; /* snapshot, thin */ + percent_type_t percent; char **pvs; uint32_t pv_count; };
1
0
0
0
main - cov; matching enum type
by Zdenek Kabelac
27 Sep '21
27 Sep '21
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=614d150a8c7387744804b…
Commit: 614d150a8c7387744804b90fddea99c7fb4511f2 Parent: bf0d558067926e716a370165e323187cf44c050a Author: Zdenek Kabelac <zkabelac(a)redhat.com> AuthorDate: Fri Sep 24 22:14:53 2021 +0200 Committer: Zdenek Kabelac <zkabelac(a)redhat.com> CommitterDate: Mon Sep 27 18:56:14 2021 +0200 cov; matching enum type --- tools/lvconvert.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/lvconvert.c b/tools/lvconvert.c index a7fb848be..34b82ea02 100644 --- a/tools/lvconvert.c +++ b/tools/lvconvert.c @@ -95,7 +95,7 @@ struct convert_poll_id_list { }; /* FIXME Temporary function until the enum replaces the separate variables */ -static void _set_conv_type(struct lvconvert_params *lp, int conv_type) +static void _set_conv_type(struct lvconvert_params *lp, conversion_type_t conv_type) { if (lp->conv_type != CONV_OTHER) log_error(INTERNAL_ERROR "Changing conv_type from %d to %d.", lp->conv_type, conv_type);
1
0
0
0
main - cov: ignoring
by Zdenek Kabelac
27 Sep '21
27 Sep '21
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=bf0d558067926e716a370…
Commit: bf0d558067926e716a370165e323187cf44c050a Parent: dab4acb8f8b379f27bdd5cd2f9014385948cdcc0 Author: Zdenek Kabelac <zkabelac(a)redhat.com> AuthorDate: Fri Sep 24 22:08:26 2021 +0200 Committer: Zdenek Kabelac <zkabelac(a)redhat.com> CommitterDate: Mon Sep 27 18:56:14 2021 +0200 cov: ignoring --- test/lib/not.c | 1 + tools/lvm.c | 1 + 2 files changed, 2 insertions(+) diff --git a/test/lib/not.c b/test/lib/not.c index 0245c3475..751c95b3d 100644 --- a/test/lib/not.c +++ b/test/lib/not.c @@ -82,6 +82,7 @@ int main(int args, char **argv) { if (val) (void) setenv("LVM_EXPECTED_EXIT_STATUS", val, 1); + /* coverity[os_cmd_sink] intentionally passing argv + 1 */ execvp(argv[1], &argv[1]); /* should not be accessible */ return FAILURE; diff --git a/tools/lvm.c b/tools/lvm.c index cc67e924a..e80113e0d 100644 --- a/tools/lvm.c +++ b/tools/lvm.c @@ -19,6 +19,7 @@ int main(int argc, char **argv) { + /* coverity[os_cmd_sink] intentionally passing argv */ return lvm2_main(argc, argv); }
1
0
0
0
main - make: build without versionsort
by Zdenek Kabelac
27 Sep '21
27 Sep '21
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=dab4acb8f8b379f27bdd5…
Commit: dab4acb8f8b379f27bdd5cd2f9014385948cdcc0 Parent: df70dca995e5593e27e13cf00311d961b4def0e2 Author: Zdenek Kabelac <zkabelac(a)redhat.com> AuthorDate: Fri Sep 24 23:04:37 2021 +0200 Committer: Zdenek Kabelac <zkabelac(a)redhat.com> CommitterDate: Mon Sep 27 18:56:14 2021 +0200 make: build without versionsort Reported-by: adamboardman of gemian --- lib/format_text/archive.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/format_text/archive.c b/lib/format_text/archive.c index 1528cb173..103b0608d 100644 --- a/lib/format_text/archive.c +++ b/lib/format_text/archive.c @@ -135,6 +135,10 @@ static struct dm_list *_scan_archive(struct dm_pool *mem, dm_list_init(results); +#ifndef HAVE_VERSIONSORT + /* fallback to alphasort when versionsort is not defined */ + #define versionsort alphasort +#endif /* !HAVE_VERSIONSORT */ /* Use versionsort to handle numbers beyond 5 digits */ if ((count = scandir(dir, &dirent, NULL, versionsort)) < 0) { log_error("Couldn't scan the archive directory (%s).", dir);
1
0
0
0
main - make: opened can be needed for either defines case
by Zdenek Kabelac
27 Sep '21
27 Sep '21
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=df70dca995e5593e27e13…
Commit: df70dca995e5593e27e13cf00311d961b4def0e2 Parent: 9971459d19e93ff652eeaff165da72e51b256299 Author: Zdenek Kabelac <zkabelac(a)redhat.com> AuthorDate: Fri Sep 24 17:46:09 2021 +0200 Committer: Zdenek Kabelac <zkabelac(a)redhat.com> CommitterDate: Mon Sep 27 18:56:14 2021 +0200 make: opened can be needed for either defines case Reported-by: adamboardman of gemian --- lib/device/dev-io.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/device/dev-io.c b/lib/device/dev-io.c index 17993d82c..b4f1930b1 100644 --- a/lib/device/dev-io.c +++ b/lib/device/dev-io.c @@ -380,8 +380,10 @@ int dev_open_flags(struct device *dev, int flags, int direct, int quiet) return 0; } -#ifdef O_DIRECT_SUPPORT +#if defined(O_NOATIME) || defined(O_DIRECT_SUPPORT) opened: +#endif +#ifdef O_DIRECT_SUPPORT if (direct) dev->flags |= DEV_O_DIRECT_TESTED; #endif
1
0
0
0
main - make: replace legacy use rindex with strrchr
by Zdenek Kabelac
27 Sep '21
27 Sep '21
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=9971459d19e93ff652eea…
Commit: 9971459d19e93ff652eeaff165da72e51b256299 Parent: e585c10fade006e5fe3643b76b09501d54c20c9b Author: Zdenek Kabelac <zkabelac(a)redhat.com> AuthorDate: Fri Sep 24 17:40:35 2021 +0200 Committer: Zdenek Kabelac <zkabelac(a)redhat.com> CommitterDate: Mon Sep 27 18:56:14 2021 +0200 make: replace legacy use rindex with strrchr Seems already dropped by some systems. Reported-by: adamboardman of gemian --- device_mapper/libdm-deptree.c | 2 +- lib/activate/dev_manager.c | 2 +- libdm/libdm-deptree.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/device_mapper/libdm-deptree.c b/device_mapper/libdm-deptree.c index a0f386e77..e4bf4c814 100644 --- a/device_mapper/libdm-deptree.c +++ b/device_mapper/libdm-deptree.c @@ -604,7 +604,7 @@ static struct dm_tree_node *_find_dm_tree_node_by_uuid(struct dm_tree *dtree, default_uuid_prefix = dm_uuid_prefix(); default_uuid_prefix_len = strlen(default_uuid_prefix); - if (suffix_list && (suffix_position = rindex(uuid, '-'))) { + if (suffix_list && (suffix_position = strrchr(uuid, '-'))) { while ((suffix = suffix_list[i++])) { if (strcmp(suffix_position + 1, suffix)) continue; diff --git a/lib/activate/dev_manager.c b/lib/activate/dev_manager.c index a8516d661..a73a556b2 100644 --- a/lib/activate/dev_manager.c +++ b/lib/activate/dev_manager.c @@ -838,7 +838,7 @@ static int _info(struct cmd_context *cmd, return 1; /* Check for original version of dlid before the suffixes got added in 2.02.106 */ - if ((suffix_position = rindex(dlid, '-'))) { + if ((suffix_position = strrchr(dlid, '-'))) { while ((suffix = uuid_suffix_list[i++])) { if (strcmp(suffix_position + 1, suffix)) continue; diff --git a/libdm/libdm-deptree.c b/libdm/libdm-deptree.c index d7fb5ef13..c14b6ef56 100644 --- a/libdm/libdm-deptree.c +++ b/libdm/libdm-deptree.c @@ -566,7 +566,7 @@ static struct dm_tree_node *_find_dm_tree_node_by_uuid(struct dm_tree *dtree, default_uuid_prefix = dm_uuid_prefix(); default_uuid_prefix_len = strlen(default_uuid_prefix); - if (suffix_list && (suffix_position = rindex(uuid, '-'))) { + if (suffix_list && (suffix_position = strrchr(uuid, '-'))) { while ((suffix = suffix_list[i++])) { if (strcmp(suffix_position + 1, suffix)) continue;
1
0
0
0
← Newer
1
2
3
4
...
13
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
Results per page:
10
25
50
100
200