diff options
author | Alasdair Kergon <agk@redhat.com> | 2011-09-09 01:15:18 +0000 |
---|---|---|
committer | Alasdair Kergon <agk@redhat.com> | 2011-09-09 01:15:18 +0000 |
commit | 5081181b5d89886389758cd42adc9b8251da327d (patch) | |
tree | ba6ae01db1f8106e282d0f95be7ffb513517614c /lib/metadata/lv.c | |
parent | dbb48de5078b00aed7f6f77453d435e8b6e45c49 (diff) | |
download | lvm2-5081181b5d89886389758cd42adc9b8251da327d.tar.gz lvm2-5081181b5d89886389758cd42adc9b8251da327d.tar.xz lvm2-5081181b5d89886389758cd42adc9b8251da327d.zip |
Append z to lv_attr if new blocks will be zeroed.
Diffstat (limited to 'lib/metadata/lv.c')
-rw-r--r-- | lib/metadata/lv.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/metadata/lv.c b/lib/metadata/lv.c index 322727eb..8434e45c 100644 --- a/lib/metadata/lv.c +++ b/lib/metadata/lv.c @@ -308,9 +308,10 @@ char *lv_attr_dup(struct dm_pool *mem, const struct logical_volume *lv) { percent_t snap_percent; struct lvinfo info; + struct lv_segment *seg; char *repstr; - if (!(repstr = dm_pool_zalloc(mem, 8))) { + if (!(repstr = dm_pool_zalloc(mem, 9))) { log_error("dm_pool_alloc failed"); return 0; } @@ -405,6 +406,13 @@ char *lv_attr_dup(struct dm_pool *mem, const struct logical_volume *lv) else repstr[6] = '-'; + if ((lv_is_thin_volume(lv) && (seg = first_seg(lv)) && seg->pool_lv && (seg = first_seg(seg->pool_lv))) || + (lv_is_thin_pool(lv) && (seg = first_seg(lv))) && + seg->zero_new_blocks) + repstr[7] = 'z'; + else + repstr[7] = '-'; + out: return repstr; } |