From 9d4dfcf58038ea4e26c1800aa63948e7761fc1d9 Mon Sep 17 00:00:00 2001 From: Mike Snitzer Date: Wed, 18 Jan 2012 17:25:42 -0500 Subject: [PATCH 2/3] Use m and M lv_attr to indicate that a snapshot merge failed in lvs. snapshot (m)erge failed, suspended snapshot (M)erge failed --- WHATS_NEW | 1 + lib/metadata/lv.c | 23 +++++++++++++++-------- man/lvs.8.in | 1 + 3 files changed, 17 insertions(+), 8 deletions(-) Index: lvm2/lib/metadata/lv.c =================================================================== --- lvm2.orig/lib/metadata/lv.c +++ lvm2/lib/metadata/lv.c @@ -441,14 +441,21 @@ char *lv_attr_dup(struct dm_pool *mem, c repstr[4] = 'd'; /* Inactive without table */ /* Snapshot dropped? */ - if (info.live_table && lv_is_cow(lv) && - (!lv_snapshot_percent(lv, &snap_percent) || - snap_percent == PERCENT_INVALID)) { - repstr[0] = toupper(repstr[0]); - if (info.suspended) - repstr[4] = 'S'; /* Susp Inv snapshot */ - else - repstr[4] = 'I'; /* Invalid snapshot */ + if (info.live_table && lv_is_cow(lv)) { + if (!lv_snapshot_percent(lv, &snap_percent) || + snap_percent == PERCENT_INVALID) { + repstr[0] = toupper(repstr[0]); + if (info.suspended) + repstr[4] = 'S'; /* Susp Inv snapshot */ + else + repstr[4] = 'I'; /* Invalid snapshot */ + } + else if (snap_percent == PERCENT_MERGE_FAILED) { + if (info.suspended) + repstr[4] = 'M'; /* Susp snapshot merge failed */ + else + repstr[4] = 'm'; /* snapshot merge failed */ + } } /* Index: lvm2/man/lvs.8.in =================================================================== --- lvm2.orig/man/lvs.8.in +++ lvm2/man/lvs.8.in @@ -105,6 +105,7 @@ changes, for example during fixed (m)inor .IP 5 3 State: (a)ctive, (s)uspended, (I)nvalid snapshot, invalid (S)uspended snapshot, +snapshot (m)erge failed, suspended snapshot (M)erge failed, mapped (d)evice present without tables, mapped device present with (i)nactive table .IP 6 3 device (o)pen Index: lvm2/WHATS_NEW =================================================================== --- lvm2.orig/WHATS_NEW +++ lvm2/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.89 - ================================== + Use m and M lv_attr to indicate that a snapshot merge failed in lvs. Differentiate between snapshot status of "Invalid" and "Merge failed". Lookup snapshot usage percent of origin volume when a snapshot is merging. Update lvdisplay with backward compat. config opt. lvm1_compatible_display.