diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2014-01-29 14:27:13 +0100 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2014-01-29 14:58:13 +0100 |
commit | 155405b0e1d310fbc44f263c5e3a5c5d23043207 (patch) | |
tree | d9dfc39818e8e2f9e3837925b09e3e486eaad7db /lib/thin | |
parent | 8074d8056acd419fd38d53b32db5373df76d825f (diff) | |
download | lvm2-155405b0e1d310fbc44f263c5e3a5c5d23043207.tar.gz |
thin: validate external origin size
Avoid use of external origin with size unaligned/incompatible with
thin pool chunk size, since the last chunk is not correctly provisioned
when it is overwritten.
Diffstat (limited to 'lib/thin')
-rw-r--r-- | lib/thin/thin.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/thin/thin.c b/lib/thin/thin.c index 0b8eaf8b5..8eaa73d78 100644 --- a/lib/thin/thin.c +++ b/lib/thin/thin.c @@ -561,6 +561,8 @@ static int _thin_add_target_line(struct dev_manager *dm, /* Add external origin LV */ if (seg->external_lv) { + if (!pool_supports_external_origin(first_seg(seg->pool_lv), seg->external_lv)) + return_0; if (seg->external_lv->size < seg->lv->size) { /* Validate target supports smaller external origin */ if (!_thin_target_present(cmd, first_seg(seg->pool_lv), &attr) || |